115
117
118
120
122
125
127
130
132
135
138
140
143
145
148
150
152
154
157
158
159
161
162
163
162
162
162
162
161
160
158
156
155
153
151
149
146
144
141
139
136
133
130
127
126
124
121
119
117
114
113
111
111
109
109
109
109
109
109
110
111
113
114
116
117
120
122
124
127
129
131
134
137
139
142
145
147
150
152
154
156
157
159
160
161
162
162
163
162
162
161
160
158
157
156
154
151
149
146
144
142
139
136
133
131
128
126
124
122
119
117
115
113
112
111
110
109
109
108
109
109
109
111
112
114
115
117
120
121
124
126
128
131
134
136
139
141
144
146
149
151
153
155
157
159
159
161
162
162
162
162
162
161
160
159
158
156
154
152
149
147
144
142
139
137
134
131
128
127
124
122
120
117
116
113
112
111
110
109
109
109
108
109
109
110
112
113
113
117
122
118
120
129
130
126
132
139
139
139
141
147
151
151
152
155
157
158
160
161
161
162
162
162
162
161
161
159
158
156
155
152
150
147
146
142
141
138
134
131
131
127
123
121
121
118
116
113
113
112
110
109
108
108
108
109
110
110
111
113
114
116
118
121
123
125
127
130
132
134
137
140
143
146
148
150
152
154
156
158
159
161
161
162
162
162
162
161
161
159
158
157
155
153
150
148
146
143
140
138
135
132
129
127
125
123
120
119
116
114
113
111
110
109
109
108
109
109
109
110
111
113
114
116
118
120
122
125
127
129
132
134
137
139
142
144
148
150
152
154
156
158
159
161
161
162
162
162
162
162
161
159
159
157
155
153
151
149
146
144
141
138
136
133
130
128
125
123
121
119
117
115
113
111
111
110
110
109
109
108
109
110
111
112
113
115
117
119
121
124
127
128
131
134
136
139
142
144
147
149
152
154
156
157
159
160
161
162
162
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
137
134
131
128
126
124
121
120
117
115
114
112
111
110
110
108
109
109
109
110
111
111
114
115
117
119
121
124
126
128
130
133
136
138
141
144
147
149
152
153
155
157
159
160
161
162
162
162
162
162
161
160
159
158
156
154
152
150
147
145
143
140
137
134
132
129
127
125
122
120
118
116
114
111
112
112
109
109
109
108
110
109
110
112
113
113
117
119
121
123
125
129
129
131
135
139
140
143
146
148
150
153
155
157
158
159
161
161
162
162
162
163
163
159
158
159
154
156
155
149
149
148
141
140
140
134
133
130
127
124
123
121
119
116
114
114
111
110
110
110
108
109
109
109
110
111
113
114
116
118
121
122
125
127
129
132
135
138
140
142
145
148
149
153
155
156
158
159
161
161
162
162
162
162
162
160
159
159
163
152
148
157
150
143
144
143
139
135
129
129
131
125
123
121
119
117
116
113
111
111
110
109
109
109
109
110
110
111
113
114
116
117
120
121
124
127
129
131
132
139
140
141
144
148
150
152
153
156
159
159
160
161
162
162
163
162
161
161
160
159
157
155
153
152
149
147
144
142
139
136
134
130
128
126
124
121
119
117
115
113
112
111
110
109
109
109
108
109
110
111
112
113
115
117
120
122
124
126
128
130
133
136
139
142
144
147
149
151
153
156
157
159
160
161
162
162
163
162
162
161
161
159
157
155
154
152
150
147
144
142
139
137
134
131
128
127
124
122
120
118
116
114
112
111
110
109
109
109
108
109
109
111
111
113
114
116
118
121
124
126
127
130
133
135
138
140
143
146
149
151
152
155
156
158
160
161
162
162
163
162
162
162
160
159
158
156
155
153
150
147
145
143
139
138
134
132
129
127
125
122
120
118
116
114
113
111
111
109
109
108
109
109
110
111
111
112
114
116
118
120
122
125
127
129
133
135
138
140
143
146
148
150
152
155
156
158
159
161
161
162
162
162
162
162
161
159
158
157
155
153
151
148
146
143
141
138
135
132
130
127
125
123
121
119
116
115
113
111
111
110
109
109
109
109
109
110
111
112
114
116
117
120
122
125
127
129
131
134
137
140
142
145
147
150
152
154
156
157
159
161
161
162
162
162
162
162
161
160
158
157
155
153
152
149
147
144
141
138
136
133
131
128
127
124
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
113
115
118
120
121
123
126
128
131
134
136
139
142
144
147
149
152
154
156
157
159
160
161
161
163
162
162
162
161
160
159
157
156
154
152
150
147
144
143
140
137
133
131
128
127
124
122
120
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
123
126
127
130
133
136
139
141
144
146
149
151
153
155
157
159
159
161
162
162
162
162
162
162
161
159
158
156
155
152
150
147
145
142
140
137
134
132
129
127
125
122
120
119
116
114
112
112
110
109
110
106
112
112
105
110
116
113
110
119
121
121
120
124
129
131
132
134
139
141
144
146
148
149
153
155
157
158
160
161
161
162
162
163
162
161
161
160
159
156
157
150
152
151
144
143
140
139
134
132
130
128
125
123
119
119
116
115
113
111
110
109
110
109
109
109
110
110
111
112
114
116
118
121
122
125
127
129
132
135
138
140
143
145
148
150
153
154
156
158
159
161
161
163
162
163
162
162
161
159
158
157
155
153
151
148
146
144
141
138
136
133
130
127
126
124
121
119
117
115
113
112
111
110
109
108
109
109
110
110
112
112
114
115
118
120
122
125
127
129
131
134
137
139
142
144
147
149
152
154
156
157
159
160
161
162
162
162
162
162
161
160
159
157
156
153
152
149
147
144
142
139
137
133
131
128
127
124
121
119
118
116
113
112
111
110
109
109
109
109
109
110
111
111
113
115
117
119
121
123
126
128
130
133
136
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
162
162
161
161
159
158
156
154
152
150
147
144
142
139
137
134
131
129
127
125
122
120
118
116
114
113
111
111
109
109
109
109
109
110
111
111
114
115
117
118
121
123
125
127
130
133
135
138
141
144
146
148
151
153
155
157
159
159
161
162
162
163
162
162
161
161
159
158
156
155
152
151
148
145
141
140
140
135
133
130
127
126
122
119
119
116
113
112
112
111
109
109
110
109
108
110
112
111
112
114
117
117
120
123
125
127
129
132
135
138
140
143
145
150
149
151
155
155
157
162
160
161
164
161
161
164
161
161
161
157
156
155
153
152
148
145
144
142
137
136
134
130
127
126
123
120
120
116
114
112
112
111
110
109
108
109
109
110
111
110
112
115
120
114
116
127
125
124
130
132
136
136
136
142
147
148
149
153
154
156
159
159
159
161
162
162
163
162
162
161
160
158
158
156
153
152
149
146
143
143
139
135
132
132
128
125
123
121
120
117
115
113
113
111
110
109
108
109
109
110
109
111
112
113
115
117
119
121
124
126
129
131
134
136
140
142
144
147
149
152
154
156
158
159
160
161
162
162
162
162
162
161
160
158
158
156
154
152
150
147
144
142
139
137
134
131
129
127
124
122
120
118
115
114
112
111
110
109
109
108
108
109
110
111
112
114
115
117
119
121
123
126
127
130
133
135
139
140
144
146
149
151
153
156
157
158
159
161
162
162
162
163
162
161
161
159
158
156
154
152
150
147
145
143
140
137
134
132
129
127
125
122
120
118
116
114
113
111
110
109
109
108
109
109
110
111
111
113
114
116
118
121
123
125
127
130
132
135
138
140
143
146
148
151
153
155
156
158
159
161
161
162
162
162
162
161
160
160
158
157
155
153
151
148
146
143
140
138
135
132
130
127
125
122
121
118
116
115
113
111
111
109
109
108
109
109
110
110
111
113
114
116
117
120
122
125
127
129
131
135
137
140
143
145
148
150
152
154
156
157
159
161
162
162
162
162
162
162
161
159
158
157
155
153
152
149
147
144
141
138
136
133
131
127
126
123
121
119
116
115
113
112
110
110
109
109
109
109
109
110
111
112
114
115
118
120
121
124
126
129
131
134
136
139
142
144
147
149
152
154
156
157
159
160
161
161
162
162
162
162
161
161
158
158
156
154
152
150
147
144
142
139
137
134
131
128
127
124
122
119
118
115
113
112
111
110
109
109
109
108
110
110
111
112
113
115
117
119
121
124
127
128
131
133
136
139
141
144
147
149
151
153
156
157
159
160
161
162
163
163
162
162
162
161
159
158
156
155
152
150
147
144
142
140
137
134
132
129
127
125
122
120
118
116
114
113
111
110
109
109
109
109
109
109
111
112
114
115
117
118
121
123
126
128
130
133
135
138
141
144
146
148
151
153
155
157
159
160
162
162
162
162
162
163
162
161
159
158
156
155
152
151
147
145
143
140
138
134
132
130
127
124
123
121
116
119
118
108
110
114
111
105
109
112
110
108
107
113
115
114
115
118
121
122
126
127
129
132
135
137
140
143
145
148
150
153
155
157
158
159
161
163
162
164
159
163
164
159
160
158
157
155
152
151
150
146
144
140
138
135
133
130
127
125
124
121
119
116
115
113
112
111
110
109
108
109
109
110
110
111
113
114
116
118
120
122
125
127
129
131
134
137
140
142
144
148
149
152
154
156
157
159
160
161
162
162
163
162
162
161
161
158
157
155
153
151
149
147
144
142
138
136
133
130
128
126
124
121
119
117
116
114
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
124
126
128
131
134
136
139
142
144
147
149
152
153
156
157
159
160
162
162
162
162
162
162
161
161
159
158
156
154
152
150
147
144
142
139
137
134
131
129
127
124
122
119
118
115
114
112
111
110
109
109
109
108
109
109
111
111
113
115
117
119
121
123
126
127
130
133
136
139
141
144
146
149
150
153
155
157
158
159
161
161
162
163
162
162
162
161
159
158
156
155
152
150
147
145
142
140
137
135
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
109
111
112
113
114
116
118
121
123
125
127
130
132
135
138
140
144
145
149
150
153
154
156
158
159
161
161
162
162
161
160
163
162
159
159
156
155
153
150
148
147
142
140
139
136
132
129
127
125
122
120
120
117
113
112
112
111
109
109
109
109
109
110
110
111
112
113
116
120
120
119
125
127
127
134
135
136
142
143
143
149
150
152
155
156
156
159
161
162
162
161
162
163
161
161
160
157
160
159
147
150
156
145
140
143
139
137
132
127
129
127
122
121
120
116
115
114
111
110
110
109
109
109
108
109
110
111
112
114
116
117
120
122
125
126
129
132
132
135
142
141
144
147
150
151
153
155
157
160
159
161
162
162
162
162
162
160
160
159
158
156
154
152
149
147
144
142
139
136
133
131
128
127
124
122
120
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
124
125
128
131
134
136
138
141
144
146
149
151
153
156
157
159
159
161
162
162
162
162
162
161
161
159
158
156
154
152
150
147
145
143
140
137
134
131
129
127
125
122
120
118
116
114
113
111
110
109
109
109
109
109
110
111
111
114
115
117
118
120
123
126
127
130
132
135
138
140
143
146
148
151
153
155
157
158
159
161
162
162
162
163
162
162
161
159
158
156
155
153
151
147
146
143
140
138
135
132
129
127
125
123
120
118
117
114
113
111
111
109
109
109
109
109
109
110
111
113
114
117
118
120
122
125
127
129
132
135
137
140
143
145
148
150
153
155
156
158
159
161
161
162
162
162
162
161
161
160
158
157
155
153
151
148
146
144
140
138
135
133
130
128
125
123
121
119
117
115
113
111
111
110
110
109
109
109
109
110
111
112
114
116
117
120
122
125
127
129
132
134
137
139
143
145
148
150
152
154
156
158
159
161
161
162
162
163
162
162
161
160
159
157
156
154
152
149
147
144
142
139
136
133
130
128
126
124
121
119
117
115
113
112
111
110
109
109
109
109
110
110
111
112
114
115
117
119
122
124
126
128
131
134
136
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
162
162
161
160
159
158
156
154
152
150
147
144
143
139
137
134
131
128
127
124
122
120
118
116
114
112
111
110
109
109
109
109
109
109
111
111
113
114
117
119
121
123
126
127
130
133
136
139
141
144
146
149
151
153
155
157
158
160
161
162
162
162
163
162
162
161
159
158
156
155
152
151
148
145
143
140
138
134
132
129
127
125
123
120
119
116
115
112
111
110
109
109
109
109
109
110
111
111
113
114
116
118
121
123
125
127
129
132
135
138
140
143
145
148
150
153
155
156
158
159
161
161
162
162
163
162
162
161
160
158
157
155
153
151
148
146
143
140
137
135
129
134
128
120
125
125
118
112
117
116
111
108
108
111
110
108
108
111
110
111
113
114
115
117
120
122
125
127
129
132
134
137
140
142
145
148
149
152
156
153
157
162
159
161
161
164
162
162
162
162
162
158
157
156
153
152
149
147
143
142
139
136
133
130
127
126
123
121
119
117
115
113
112
110
110
109
108
108
109
110
111
111
112
113
115
117
119
121
124
126
129
130
134
136
139
142
144
147
149
152
154
156
157
159
160
161
161
162
162
162
162
161
160
158
158
156
155
152
149
147
144
142
139
137
133
131
128
127
124
122
119
117
115
113
112
111
111
109
109
109
109
109
110
111
112
114
115
117
118
121
123
126
127
130
133
135
139
141
144
146
149
151
153
155
157
158
160
161
162
163
162
163
162
162
161
159
158
156
154
152
150
147
145
142
140
137
134
132
129
127
125
123
120
118
115
114
112
111
110
110
109
109
109
109
110
111
111
113
114
117
119
121
123
125
127
130
132
135
138
140
143
145
148
150
153
154
157
158
159
161
162
162
162
162
162
162
160
160
158
157
155
153
151
148
146
143
141
138
135
132
129
127
125
123
120
119
116
115
112
111
110
110
109
109
108
109
110
110
111
112
114
116
118
120
122
125
127
129
132
135
138
140
143
144
147
152
153
155
157
157
159
160
160
163
162
161
161
163
161
159
158
158
156
152
151
150
147
142
141
138
135
132
130
127
126
123
121
119
117
115
112
112
113
110
106
109
108
107
111
111
110
113
118
117
112
120
126
123
124
128
132
136
135
137
143
147
147
149
153
155
157
158
158
159
161
162
162
163
161
162
162
160
158
158
156
153
152
149
148
144
142
141
134
133
134
127
126
123
122
120
117
115
114
113
111
110
109
109
109
109
110
110
111
112
114
115
117
119
122
124
126
128
130
133
136
139
141
144
147
149
151
154
156
157
159
161
161
162
163
162
163
162
162
160
159
157
156
155
152
150
147
145
142
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
109
110
109
109
109
109
111
111
113
115
117
119
121
123
126
127
130
133
135
139
141
143
146
149
151
152
155
157
158
160
161
161
162
162
163
163
162
161
160
158
156
155
152
151
147
146
143
140
138
135
132
129
127
125
123
120
118
116
114
113
112
110
110
109
109
109
109
110
111
111
113
114
116
118
120
123
126
127
129
132
134
138
140
143
145
148
150
153
155
156
158
160
161
161
162
162
163
162
162
161
160
158
157
155
153
151
148
146
144
141
138
135
133
129
127
125
124
122
119
116
114
113
112
111
110
109
109
109
109
110
111
112
113
114
116
118
120
122
125
127
129
132
134
137
139
143
145
148
150
152
154
156
158
160
161
161
162
162
163
162
162
161
160
158
157
156
153
152
148
147
144
141
139
136
133
131
128
126
124
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
122
124
127
128
131
134
136
139
142
144
147
149
152
153
156
157
159
160
161
162
162
163
162
162
161
161
159
158
156
154
152
150
147
144
142
139
137
134
132
129
127
124
122
120
118
116
113
112
111
110
109
109
109
108
110
109
111
111
114
115
117
119
121
124
126
128
130
133
136
139
141
144
146
148
151
153
155
156
159
159
161
162
162
162
162
162
161
161
159
158
156
155
152
151
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
109
109
110
111
113
115
117
118
121
122
125
127
129
132
135
138
140
143
145
149
150
153
155
157
158
159
161
161
162
162
162
162
162
160
160
158
157
155
153
151
148
146
143
141
138
135
133
130
127
125
123
120
119
116
115
113
111
111
110
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
134
137
140
143
145
148
150
152
154
157
158
159
161
161
162
162
162
162
162
161
160
158
157
156
153
150
149
151
141
138
142
139
130
129
131
127
121
118
119
119
116
112
112
111
110
110
109
108
108
110
109
111
112
114
115
117
120
122
125
126
129
130
135
137
138
140
146
147
148
151
154
156
157
158
161
163
162
162
162
162
162
161
161
158
158
156
154
152
149
147
144
142
139
137
133
131
128
126
124
122
119
117
116
114
112
111
110
109
109
109
109
109
110
111
111
113
115
117
119
121
124
126
128
130
133
136
139
141
144
146
149
152
153
155
157
159
159
161
162
162
162
162
162
161
161
159
158
156
155
152
150
148
145
142
140
137
134
132
128
127
124
122
120
118
116
114
112
111
111
109
109
109
109
109
110
111
111
113
114
116
118
120
123
126
127
130
132
135
138
141
144
145
149
151
153
155
157
158
159
161
162
162
162
162
162
161
161
160
157
156
155
153
151
148
145
143
141
138
135
132
129
127
125
123
120
118
116
115
113
111
111
109
109
108
109
109
110
110
111
113
114
116
118
120
122
125
127
131
132
135
137
140
143
145
148
150
152
155
156
158
159
161
161
162
162
162
162
162
161
160
158
157
155
153
151
148
146
143
141
138
135
132
130
127
125
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
116
117
120
122
125
127
129
131
135
137
139
142
145
148
149
150
154
158
158
160
160
161
163
162
161
163
162
160
159
159
158
153
158
154
143
147
149
141
136
137
134
131
126
124
126
123
118
117
116
112
113
111
109
111
111
106
108
110
107
112
114
111
116
119
117
122
126
125
129
131
132
137
136
142
147
146
148
152
155
155
157
159
160
161
162
161
162
162
162
161
159
158
158
156
155
152
150
147
145
142
139
137
133
131
128
127
124
122
119
117
116
113
112
111
110
109
109
109
109
109
110
111
111
113
114
117
118
121
123
126
127
130
133
136
139
141
144
146
149
151
154
155
157
158
160
161
162
162
162
162
162
161
161
159
158
156
155
152
150
147
145
143
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
109
109
111
111
113
114
116
118
120
123
125
127
130
132
135
138
140
143
145
148
150
153
154
156
158
160
161
162
162
163
163
162
161
161
159
158
157
155
153
151
148
146
143
141
138
135
133
129
127
125
123
120
119
116
115
112
111
110
109
109
108
109
109
110
110
111
112
114
116
118
120
122
125
127
129
132
134
137
140
142
144
148
150
152
154
156
158
159
160
161
162
162
162
162
162
161
160
158
157
155
153
151
149
146
144
141
138
135
133
130
128
126
124
121
119
117
115
113
112
111
110
109
109
109
109
110
109
111
112
114
115
117
119
122
124
127
128
131
134
136
139
142
145
147
149
152
154
156
157
159
160
161
162
162
163
162
162
161
161
159
158
155
154
152
149
147
144
142
139
137
134
131
128
127
124
121
120
118
115
113
112
111
111
110
109
109
109
109
110
111
111
113
115
117
119
121
123
126
127
130
133
136
138
141
144
146
149
151
154
155
156
159
161
162
161
162
162
162
162
162
160
159
158
156
155
152
150
147
145
142
140
138
134
132
129
127
124
122
120
118
116
114
112
111
110
109
108
108
109
109
110
110
111
113
115
117
118
120
123
125
127
130
132
135
138
140
144
146
149
150
153
155
157
159
159
161
161
162
162
163
162
162
161
159
158
157
155
152
151
148
146
143
141
138
135
132
129
127
125
123
120
119
116
114
113
111
111
109
109
109
109
108
110
111
111
113
114
116
118
120
122
125
127
129
132
135
137
140
143
145
148
150
153
155
156
158
159
161
161
162
162
163
162
162
161
160
158
157
155
153
152
148
146
144
141
138
135
133
130
127
125
123
121
119
117
115
113
111
111
109
109
108
109
109
110
110
111
112
114
116
117
120
122
125
126
129
131
134
137
140
142
145
147
149
153
154
156
157
159
160
161
162
162
162
162
160
166
161
154
159
159
152
148
151
150
143
139
138
139
134
130
128
126
124
121
120
116
115
113
112
111
110
109
109
109
109
110
110
111
112
114
117
118
120
119
125
127
127
130
134
136
139
141
144
148
149
151
153
156
157
159
160
161
162
162
163
162
162
161
160
159
157
156
154
152
149
147
144
142
140
137
134
132
128
127
124
122
120
118
116
113
112
111
111
109
109
109
109
109
109
111
111
113
115
117
119
121
123
126
128
130
133
135
138
141
144
146
149
151
153
155
156
158
159
161
162
162
163
162
162
162
161
159
158
156
155
153
150
148
145
143
140
137
135
132
129
127
124
123
120
118
116
114
113
111
111
110
109
109
109
109
110
110
111
113
114
117
118
120
123
125
127
130
132
135
137
140
143
145
148
150
153
154
156
158
159
161
162
162
162
162
162
162
161
160
158
157
155
153
151
148
146
143
141
138
135
133
129
127
125
123
120
119
116
115
112
111
110
110
109
109
108
109
109
110
111
112
114
116
118
120
122
125
127
129
132
134
137
140
142
145
148
150
152
154
156
158
159
160
161
162
162
162
162
162
161
161
158
157
156
154
152
149
147
144
142
139
136
133
131
128
126
123
121
119
116
115
113
112
110
110
109
109
109
109
109
110
112
111
113
117
121
114
119
130
125
126
132
136
137
136
139
146
150
150
149
154
156
156
160
161
159
161
163
164
162
161
161
161
158
157
157
155
150
149
148
145
141
140
138
131
130
131
127
123
122
119
117
118
113
110
112
109
107
111
109
108
111
110
109
113
114
114
118
118
120
123
126
129
131
132
136
139
141
144
147
149
150
153
155
156
158
160
161
161
162
162
163
162
161
161
159
158
156
154
152
150
147
145
142
140
137
134
132
129
127
125
123
119
118
116
114
112
111
110
109
109
109
109
109
110
110
111
113
114
116
118
121
123
125
127
130
132
135
138
140
143
146
149
151
153
155
156
158
159
161
161
162
162
163
162
162
161
159
158
156
155
153
150
148
146
143
140
138
135
133
130
127
125
123
120
119
116
115
112
111
110
110
109
109
109
109
110
110
111
112
114
116
118
120
122
125
127
129
132
135
137
140
143
145
147
150
152
154
156
157
159
161
162
162
162
163
162
162
161
160
158
157
155
153
152
149
147
143
142
139
136
132
130
127
126
123
121
120
116
115
113
111
111
110
109
109
109
109
110
110
111
112
114
116
117
120
122
124
127
129
131
134
137
140
142
145
147
149
152
154
156
157
159
160
161
162
162
162
162
162
161
160
158
157
156
154
152
149
147
144
141
139
136
133
131
128
126
124
122
119
117
115
113
112
110
110
110
108
109
109
109
110
111
112
113
115
117
119
121
124
126
128
130
133
136
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
162
162
161
160
159
158
156
155
152
150
147
145
143
140
137
134
131
128
127
125
122
120
118
116
113
112
111
111
109
109
109
109
109
109
111
111
113
114
117
119
121
123
126
127
130
133
135
139
141
144
146
149
151
153
155
157
158
159
161
161
162
162
162
162
161
161
159
158
156
155
152
150
147
145
143
140
138
135
132
129
127
125
123
120
118
116
114
112
111
111
110
109
109
109
109
109
110
111
113
114
117
118
120
122
125
127
129
132
135
138
140
143
145
148
150
153
155
156
158
159
161
161
162
162
162
162
161
161
160
158
156
155
153
152
148
146
143
141
139
135
133
129
127
125
123
121
119
116
115
113
112
110
109
109
109
109
109
109
111
111
113
114
116
117
120
122
125
127
129
132
134
137
139
142
145
148
149
152
154
156
158
159
161
161
162
162
163
162
162
161
160
158
157
155
153
152
149
146
144
141
139
136
133
130
128
126
124
122
119
117
115
113
112
111
110
109
109
109
109
110
110
111
112
114
115
117
119
122
124
127
129
131
134
136
139
142
144
147
149
151
153
156
154
163
162
156
163
166
162
157
164
164
159
156
156
158
156
151
149
148
144
143
140
136
133
131
129
126
124
122
120
117
116
113
113
111
111
109
109
110
107
108
111
111
111
112
116
116
119
120
124
127
127
130
133
136
138
141
144
146
149
152
154
155
157
159
160
162
162
162
162
162
162
162
161
159
158
156
155
152
151
148
145
143
140
137
134
132
129
127
124
122
120
118
116
114
113
111
111
110
109
109
109
109
110
111
111
113
114
116
118
121
123
125
127
130
133
135
138
141
144
146
149
151
153
155
157
158
159
161
161
162
163
162
162
162
161
159
158
156
155
153
151
148
146
144
140
138
135
133
130
127
125
123
120
118
116
115
113
111
111
110
109
109
109
109
110
110
111
113
114
116
118
121
122
125
127
129
132
134
137
140
143
145
148
150
153
154
156
158
159
161
161
163
162
162
162
162
161
160
159
157
156
153
151
149
147
144
141
138
135
133
130
128
126
124
121
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
114
116
117
120
122
124
127
129
131
134
137
139
142
144
147
149
152
154
156
158
159
161
161
162
162
163
162
162
161
160
159
156
161
153
146
153
150
141
141
139
138
134
129
127
127
125
120
120
118
115
114
113
110
110
110
108
109
109
109
110
111
111
114
116
117
120
121
121
126
132
131
134
133
139
144
142
145
150
152
152
155
158
160
159
161
163
161
161
163
164
160
160
159
158
156
154
152
150
147
145
143
140
137
133
132
130
128
122
121
120
115
117
116
111
113
112
107
110
110
108
110
110
110
111
113
115
117
118
120
124
125
127
130
134
134
138
141
143
146
149
151
153
155
157
159
160
161
161
162
162
163
162
161
160
159
158
156
155
152
150
148
145
143
140
138
135
132
129
127
125
123
120
118
117
114
113
111
111
109
109
109
109
109
109
111
111
113
114
116
117
120
123
126
127
129
131
134
138
140
143
145
147
150
152
155
156
158
159
161
161
162
162
163
162
162
160
159
158
157
155
153
151
148
146
143
141
138
135
134
131
127
125
123
121
119
117
115
113
111
110
109
109
109
108
108
110
110
111
112
114
116
118
120
122
125
126
129
131
134
137
139
142
145
147
149
152
154
156
157
159
161
161
162
162
162
162
162
161
160
158
158
155
154
152
149
147
144
142
139
136
133
131
128
126
124
121
119
117
115
113
112
111
110
109
109
109
109
110
110
111
111
114
115
117
119
121
124
126
128
131
133
136
139
142
144
147
149
152
154
155
157
159
159
161
162
163
162
162
162
161
161
159
158
156
154
152
149
147
144
142
139
137
134
132
129
127
124
122
120
117
116
114
112
111
110
109
109
109
108
109
110
111
112
114
115
117
118
121
123
126
128
130
133
135
139
141
144
147
149
151
153
156
156
158
159
161
162
163
162
162
162
162
160
159
158
156
155
153
150
148
145
143
140
137
134
132
129
127
125
123
120
118
116
114
113
111
111
110
109
109
109
109
110
111
111
113
114
117
118
120
123
126
127
130
133
135
138
140
143
146
148
150
153
155
156
158
159
161
162
162
162
163
162
162
161
159
158
156
155
153
152
149
146
143
141
138
135
133
130
127
125
123
121
119
117
114
113
111
111
109
109
108
109
109
109
110
111
113
114
116
118
120
122
125
127
129
132
134
138
139
142
145
148
150
153
154
156
158
159
161
161
162
163
163
162
162
161
160
158
157
156
153
152
149
146
144
141
139
136
133
130
128
126
124
121
119
117
115
114
111
111
110
109
108
109
108
109
110
111
112
114
116
117
120
122
124
127
129
131
134
137
139
142
144
147
149
152
154
156
158
159
160
161
162
162
163
162
162
161
161
158
158
156
154
152
149
147
144
142
139
137
133
131
128
127
124
121
120
117
116
113
112
111
110
109
109
109
109
109
109
111
111
114
114
118
119
119
126
129
124
129
137
138
134
141
147
147
146
149
155
158
157
157
161
161
162
163
162
162
162
162
161
159
158
156
154
152
150
148
145
142
140
138
133
134
127
127
126
121
120
117
117
113
112
112
112
110
108
108
109
110
110
111
111
113
115
117
119
120
123
125
127
130
133
135
138
140
144
145
148
151
153
155
157
158
159
161
161
162
162
163
162
161
160
159
158
157
155
153
150
148
145
143
140
138
134
132
129
127
125
123
120
118
116
114
113
111
111
109
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
134
138
140
143
145
148
150
152
155
156
158
159
161
161
162
162
163
162
162
161
159
158
156
155
153
151
148
146
144
141
138
136
133
130
127
126
123
121
119
117
115
113
111
111
109
109
109
109
109
109
110
111
112
114
116
117
120
122
124
127
129
132
134
137
139
142
145
147
149
152
154
156
158
159
160
161
162
162
163
162
161
161
160
159
157
156
153
152
149
147
144
141
139
136
133
131
128
126
123
121
119
117
115
113
112
111
110
110
109
109
109
109
109
111
111
111
119
119
112
122
129
124
126
133
134
137
137
139
146
149
148
151
154
155
157
160
159
160
162
162
163
162
162
161
160
159
157
156
154
152
149
147
144
142
140
138
131
131
131
125
124
122
121
117
115
113
114
112
110
109
109
109
109
110
110
110
110
113
117
117
120
121
123
126
127
129
134
135
137
141
145
147
148
152
154
155
155
159
161
161
161
162
163
162
161
162
161
159
158
157
155
152
150
147
146
145
139
135
135
130
128
129
124
122
123
117
115
116
112
111
111
108
108
109
109
110
109
109
112
114
114
117
119
121
122
125
127
129
132
135
138
139
143
146
148
151
153
155
156
158
159
161
161
162
162
162
162
162
161
160
159
156
155
153
151
148
146
144
141
138
135
133
130
127
126
123
120
119
116
115
113
111
111
109
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
134
137
139
142
144
148
150
152
154
156
158
159
160
162
162
162
163
162
162
161
160
159
157
156
153
152
149
147
144
141
139
136
133
130
127
126
123
121
120
117
116
113
112
111
110
109
109
109
108
109
110
111
112
113
115
117
120
121
124
127
129
131
134
136
139
142
144
147
149
152
153
155
157
159
160
161
162
162
162
162
162
161
161
159
157
156
154
152
149
147
144
142
140
137
134
131
127
126
124
122
120
117
116
114
112
111
110
110
109
109
108
109
109
111
112
114
115
117
119
121
123
126
127
130
134
135
138
141
144
147
149
151
153
156
157
159
160
161
162
162
163
162
162
161
161
159
158
156
154
152
150
148
145
143
140
137
134
132
129
127
124
122
120
118
116
114
112
111
110
109
109
109
108
109
110
111
112
113
115
116
119
120
123
125
127
129
133
135
138
140
144
145
148
151
153
155
156
159
159
161
162
162
163
162
162
161
161
159
158
156
155
153
150
148
145
143
140
138
135
132
129
127
125
123
120
118
116
114
113
111
111
110
109
109
109
109
109
111
111
113
114
116
118
120
123
125
127
129
132
134
137
139
143
145
148
150
152
154
156
158
159
161
161
162
162
163
162
162
161
160
159
157
155
152
151
148
146
144
141
139
135
133
130
127
126
123
121
119
117
114
113
111
111
110
109
108
108
109
109
110
111
112
114
116
118
120
122
125
127
128
131
134
137
139
142
144
147
150
152
154
155
157
159
160
161
162
162
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
136
133
131
128
126
124
121
119
117
115
114
112
111
110
109
109
109
108
109
110
111
111
114
115
117
119
121
124
126
128
131
133
136
139
141
144
147
149
152
154
155
157
158
161
161
162
162
163
162
162
161
161
159
158
156
154
153
149
148
144
143
139
137
134
131
129
127
124
122
120
118
116
113
113
111
109
111
113
106
105
114
112
106
111
116
116
114
116
121
125
126
127
131
133
135
139
141
143
145
149
151
153
156
157
159
159
161
162
162
162
163
162
161
163
156
158
158
153
153
149
150
145
143
139
139
136
131
128
127
125
123
121
118
116
114
113
111
111
109
109
109
109
109
110
111
112
113
114
116
118
121
123
125
127
129
132
135
138
140
143
145
148
150
152
155
156
158
159
161
161
162
162
162
162
161
161
159
158
157
155
153
151
149
146
144
140
139
135
133
130
127
125
123
121
119
117
114
113
112
111
110
109
109
108
109
109
111
111
113
114
116
118
120
122
125
127
129
131
134
137
139
142
144
147
150
152
155
156
158
159
161
162
162
162
162
163
162
162
159
158
156
156
154
152
148
146
144
142
139
136
133
130
128
126
124
121
119
117
115
113
112
111
109
109
108
109
109
109
110
110
112
114
116
117
119
121
124
127
128
131
134
136
139
142
144
147
149
152
153
156
157
158
161
161
162
162
163
162
162
162
160
158
158
154
159
152
143
151
148
140
138
138
135
131
127
125
126
123
119
117
116
113
113
112
109
109
109
108
109
109
109
111
112
113
115
117
119
120
124
125
127
132
132
136
136
142
145
145
148
152
154
155
156
159
161
161
161
162
162
162
162
162
161
159
158
156
155
153
150
148
145
143
140
138
134
132
129
127
125
122
120
118
116
114
113
111
111
110
110
108
106
110
111
111
112
113
114
117
117
120
124
124
126
130
134
135
137
141
144
145
147
151
154
154
155
159
160
160
161
162
163
162
162
161
161
159
158
156
156
155
149
147
146
141
141
140
134
133
131
126
125
124
120
118
117
113
112
111
111
110
109
108
109
109
109
111
112
113
114
116
117
120
123
125
127
129
132
134
137
140
143
145
147
150
152
154
156
158
158
160
161
162
162
162
162
162
161
159
158
156
155
153
151
148
146
143
141
139
136
133
131
127
126
123
121
119
117
114
113
111
111
110
109
109
108
108
109
110
111
112
113
116
117
120
122
124
127
128
131
133
137
139
142
144
147
150
152
154
156
158
158
160
161
162
162
162
162
161
161
160
159
157
156
154
152
149
147
144
141
139
136
134
131
128
126
124
121
119
117
115
114
112
111
110
109
108
109
108
110
110
111
112
113
115
117
119
121
123
126
127
131
133
136
138
142
144
147
149
151
153
156
157
159
160
161
162
162
162
162
162
161
160
159
158
156
154
152
150
148
145
143
140
137
134
131
129
126
125
122
120
117
116
113
112
111
110
110
109
109
108
109
110
111
112
113
115
116
119
120
123
125
127
130
133
135
138
140
143
146
149
151
153
155
157
158
160
161
161
162
163
162
162
161
161
159
158
156
155
153
150
148
145
143
140
137
134
132
130
127
126
122
120
118
116
114
112
111
110
109
109
109
109
109
109
111
111
113
114
116
118
120
122
125
127
129
132
135
137
140
143
146
148
151
152
154
156
158
159
161
162
162
163
162
162
162
161
159
158
157
155
153
151
148
146
144
141
138
135
133
130
128
126
123
121
118
117
115
114
112
111
109
109
109
109
109
109
110
111
113
114
116
118
120
122
124
127
129
131
134
137
139
143
145
148
150
152
154
156
158
159
160
162
162
162
162
163
162
162
160
158
157
156
153
152
149
147
144
141
139
136
133
131
128
126
124
121
120
118
115
113
112
111
110
109
109
109
109
109
110
111
112
114
116
117
119
121
124
126
128
131
133
136
139
142
144
147
149
152
153
156
158
159
160
161
162
162
162
162
162
161
161
159
157
156
154
152
150
147
144
142
139
136
134
131
129
126
124
122
120
118
115
114
112
111
110
110
109
109
108
109
110
111
112
113
115
116
119
121
124
125
127
130
133
136
139
141
144
146
149
151
154
155
157
158
160
161
162
162
163
162
162
161
161
159
158
156
154
153
150
148
145
143
139
137
135
129
133
128
119
123
124
118
112
116
115
111
107
108
111
111
108
109
111
111
112
113
114
115
118
121
123
125
127
129
132
134
138
141
143
145
148
152
152
156
154
159
161
159
162
162
163
162
161
162
162
160
158
156
155
153
151
148
145
144
140
138
135
132
130
127
125
123
121
118
117
115
113
111
110
109
109
108
109
109
109
111
111
113
114
116
118
120
122
124
127
129
132
134
137
139
142
145
148
150
152
154
156
158
159
161
162
162
162
162
162
162
161
160
159
157
155
153
151
149
146
144
141
139
136
133
131
128
126
123
121
119
117
115
114
111
111
109
109
108
109
109
109
110
111
113
114
116
118
120
122
124
127
128
131
134
137
139
142
144
147
149
151
154
156
158
158
160
161
162
162
162
162
162
161
160
159
157
156
154
152
150
147
144
141
139
136
134
131
128
127
123
121
119
117
115
114
112
111
110
109
109
109
109
109
110
110
111
113
115
123
118
114
128
129
125
130
135
137
139
139
143
150
149
150
154
156
157
160
161
160
161
162
162
163
162
162
160
159
157
156
155
152
150
147
145
141
141
136
134
129
131
127
123
122
120
119
115
114
112
113
110
109
109
109
109
110
110
110
111
113
115
117
119
121
123
126
127
130
132
135
137
141
143
146
149
151
153
155
157
158
160
161
161
162
163
162
162
161
160
159
158
157
155
153
150
148
145
144
141
138
135
131
130
127
126
122
120
118
116
114
112
110
108
112
110
109
110
108
110
111
110
113
115
115
118
121
124
125
127
130
133
134
137
141
143
144
147
151
152
154
157
158
159
161
162
162
162
162
162
161
163
160
156
156
154
151
153
150
145
145
142
136
137
134
129
128
126
122
120
118
118
115
113
111
111
110
109
110
109
108
109
110
110
112
114
116
117
120
122
124
127
129
132
133
137
140
142
144
147
150
152
154
156
158
159
161
161
162
163
162
162
161
161
159
159
157
156
153
152
149
147
144
141
139
136
133
131
128
126
124
121
119
117
115
113
112
111
109
109
109
109
109
109
110
111
112
113
116
117
120
121
124
126
128
131
133
136
139
141
144
147
148
152
153
155
157
158
160
161
162
162
163
162
162
161
160
159
157
156
154
153
149
147
145
142
139
136
134
131
129
126
124
122
120
118
116
114
112
111
110
110
109
109
109
109
109
110
112
113
115
116
118
121
123
126
127
130
132
136
138
141
143
146
148
151
153
155
157
158
160
160
162
162
162
162
162
162
160
159
158
156
155
153
150
148
145
143
140
137
135
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
109
110
111
112
114
116
119
120
123
125
127
129
132
135
137
140
143
146
148
150
153
155
156
158
159
160
162
162
162
162
162
162
161
160
158
157
155
153
151
149
146
143
141
139
135
133
130
127
126
122
121
119
116
114
113
112
110
110
109
109
109
109
109
111
111
113
114
116
118
120
122
124
127
128
132
134
137
139
142
145
148
150
152
154
156
158
159
161
162
162
163
162
163
162
161
160
158
157
155
154
151
149
146
144
141
138
136
133
130
128
126
123
121
119
118
115
114
112
111
109
109
109
109
109
109
110
111
112
114
115
118
119
122
124
127
128
131
134
136
139
142
144
147
150
152
154
156
157
158
160
161
162
163
163
163
162
162
160
159
157
155
154
152
150
147
144
142
139
137
134
131
129
127
124
122
119
118
115
114
112
112
111
109
108
108
109
110
110
110
112
113
115
117
119
121
123
126
127
131
133
136
139
141
144
146
149
152
154
155
157
158
160
161
162
162
163
163
162
161
159
159
157
157
154
152
150
147
145
142
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
116
118
121
123
125
127
130
132
136
138
141
143
146
148
151
153
155
156
158
160
161
162
162
163
162
161
163
158
164
159
152
156
157
150
144
148
146
140
135
134
134
131
127
125
123
121
119
117
114
112
111
111
110
109
109
109
109
109
110
112
113
114
115
119
119
123
122
127
131
130
134
137
141
142
144
148
152
152
154
156
158
159
161
162
161
162
162
162
162
161
160
158
157
155
154
151
149
146
144
141
138
136
133
130
127
126
123
121
119
117
115
113
111
111
110
109
109
108
109
109
110
111
113
114
116
117
120
122
124
127
128
131
134
137
139
142
145
147
150
152
154
156
158
159
161
161
162
163
162
162
161
162
159
159
157
156
154
152
149
146
144
142
140
136
134
131
128
126
124
122
119
118
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
118
119
122
124
126
127
131
133
136
139
141
144
146
149
152
154
155
157
158
160
161
162
162
162
162
162
162
160
158
157
156
159
150
144
152
147
140
139
138
135
131
127
126
127
123
119
118
116
114
113
112
109
110
110
108
109
109
109
111
112
113
115
117
119
121
124
125
127
132
132
135
136
142
145
145
148
151
154
155
156
158
161
161
161
162
162
162
162
162
160
159
158
157
155
153
150
148
145
143
140
137
135
131
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
116
118
120
123
125
127
129
132
135
137
141
143
145
148
151
153
155
156
158
159
160
162
162
163
162
162
162
161
160
158
157
155
153
151
149
146
144
141
138
135
132
130
127
126
123
120
116
118
116
114
113
110
110
109
108
109
111
108
109
112
114
114
115
119
121
121
123
127
130
131
133
137
140
141
145
148
150
152
155
156
157
159
160
161
164
164
160
161
161
159
161
161
156
156
155
149
150
148
143
142
140
136
132
130
128
127
123
121
119
118
114
114
113
110
109
109
108
108
109
109
110
111
113
114
115
117
119
122
124
127
128
131
133
136
139
142
144
148
150
151
154
156
158
159
160
161
162
162
162
163
162
161
160
159
158
156
154
152
150
147
145
142
139
137
134
131
129
127
124
122
119
118
115
114
112
111
110
109
109
108
109
109
110
111
112
113
115
117
119
121
123
126
128
130
133
135
138
141
144
146
149
151
154
155
157
159
160
161
162
162
163
162
162
162
160
159
157
156
154
152
150
147
145
142
140
137
135
132
129
127
125
123
120
118
115
115
112
111
111
110
109
108
109
109
110
110
111
113
115
116
119
121
123
125
127
130
133
135
138
141
143
146
148
151
153
154
157
158
160
161
161
162
162
162
162
162
161
160
158
157
155
153
151
148
146
144
141
138
135
132
130
127
125
123
120
119
116
115
112
111
110
110
109
109
109
109
110
110
111
112
114
116
118
120
122
125
127
129
132
134
137
140
142
145
148
150
153
154
157
158
159
160
161
162
162
162
162
162
161
160
158
157
155
154
152
149
147
144
141
138
136
132
131
127
126
123
121
119
116
115
113
112
110
110
109
109
109
109
110
110
111
112
114
116
118
120
122
124
127
129
131
134
137
139
142
145
147
149
152
154
156
158
159
160
162
162
162
162
162
162
161
161
158
158
155
154
152
150
147
144
142
139
136
133
131
128
127
124
121
119
118
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
123
126
127
131
133
136
139
141
144
146
149
151
153
155
157
159
160
162
162
162
162
162
162
162
161
159
158
156
154
152
150
147
145
142
140
137
134
131
129
127
124
122
120
118
115
114
112
111
110
109
109
109
109
109
110
111
111
113
115
117
118
121
123
126
127
130
133
135
138
140
144
146
149
151
153
155
157
158
159
161
162
162
163
162
162
162
161
160
158
156
155
152
151
148
145
143
140
138
135
132
129
127
125
123
120
119
116
114
112
111
110
110
109
108
109
109
109
110
111
113
115
116
118
120
123
125
127
129
132
135
137
140
143
144
149
148
158
155
151
160
163
159
158
164
164
161
159
162
163
161
157
156
156
153
152
149
145
143
141
138
135
133
130
127
125
123
121
119
117
115
112
113
111
109
107
110
109
108
109
111
111
112
113
116
120
119
121
124
127
129
131
134
136
140
143
145
148
150
152
154
156
158
159
161
161
162
162
162
162
162
161
160
158
157
155
154
152
149
147
144
141
139
136
133
130
128
126
124
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
118
119
122
124
126
128
131
134
136
139
141
144
147
149
152
154
156
157
159
160
161
162
162
162
162
162
161
161
159
157
155
154
152
150
147
144
142
139
137
134
132
128
127
124
122
120
118
115
114
112
111
110
110
109
109
109
109
110
111
111
113
115
117
118
121
123
126
127
131
132
133
143
143
138
145
154
150
151
156
158
160
158
158
162
165
162
162
162
161
161
160
158
155
155
152
150
148
145
143
140
137
134
132
129
127
125
123
120
118
117
115
111
111
112
109
108
108
109
109
109
110
112
114
114
116
118
121
123
126
127
129
133
135
138
140
143
145
148
150
153
155
156
158
160
161
162
162
163
163
162
162
161
160
158
157
155
153
151
148
146
143
140
138
135
133
130
127
125
123
120
119
116
115
113
112
111
110
109
109
109
109
110
110
111
112
114
116
118
120
122
125
127
130
132
135
138
140
143
145
148
150
152
154
157
158
159
161
162
162
162
163
162
162
161
160
159
157
155
153
152
149
146
144
141
139
136
131
130
129
127
124
121
118
117
115
112
113
111
108
109
110
110
108
109
111
111
111
114
117
118
118
121
125
126
128
131
135
137
139
143
145
148
150
151
154
159
158
156
160
160
160
164
163
161
164
162
158
160
158
155
154
152
148
147
144
143
139
136
133
132
128
127
125
122
119
117
115
113
112
111
110
109
109
109
109
110
110
111
112
114
115
117
119
121
124
126
128
130
134
136
139
141
144
147
149
151
153
156
157
159
160
161
162
162
162
162
163
161
161
159
158
156
154
152
150
147
145
143
140
137
134
132
129
127
124
122
120
118
116
114
113
111
111
109
108
108
109
110
111
110
111
113
115
117
118
121
123
125
127
130
133
135
139
140
143
146
149
151
153
155
157
158
160
161
162
162
162
162
162
162
161
159
158
157
155
153
150
148
146
144
140
137
134
132
130
127
125
123
120
119
117
114
113
111
110
109
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
135
138
140
143
145
148
150
153
155
156
158
159
161
161
163
162
163
162
162
161
159
158
157
156
153
151
148
146
144
141
138
135
133
130
127
125
123
121
119
117
115
113
111
111
110
109
109
109
109
110
110
111
113
114
116
117
120
122
125
127
129
131
134
137
139
142
144
148
150
152
154
156
158
159
160
161
162
162
163
162
162
161
160
159
157
155
154
152
149
147
144
142
139
136
133
131
128
126
124
121
119
117
115
114
112
111
110
110
109
109
109
110
110
111
112
114
115
117
120
121
124
126
128
130
133
136
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
163
162
161
161
159
157
156
154
152
149
148
145
143
139
137
134
132
129
127
124
122
120
117
116
113
112
111
110
110
109
109
109
109
110
111
112
114
115
117
119
121
123
126
128
130
133
135
138
141
144
146
148
151
153
156
157
159
159
161
162
162
163
162
162
161
161
159
158
156
154
153
150
148
145
143
140
137
134
132
129
127
125
122
121
118
116
114
113
111
110
109
109
109
109
109
110
111
111
113
114
117
118
121
123
125
127
129
133
135
138
140
143
145
148
150
152
155
156
158
159
161
161
162
162
163
162
162
161
160
158
156
155
153
151
148
146
144
141
138
135
133
130
128
126
123
121
118
117
115
113
111
111
109
109
109
109
109
110
110
111
113
114
116
118
118
125
127
123
128
136
135
133
140
145
145
145
148
154
157
155
157
159
161
161
163
162
162
162
162
161
160
159
157
156
153
152
149
147
143
142
139
135
136
127
128
127
122
122
118
119
115
112
112
112
110
109
108
110
109
110
110
110
112
114
116
117
120
121
124
127
128
132
134
137
139
142
144
147
149
152
154
155
157
159
160
161
162
162
162
162
162
161
160
159
157
156
154
152
150
147
144
142
139
137
134
131
128
127
124
122
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
124
126
128
130
133
136
139
142
144
147
149
151
153
155
157
159
160
161
162
162
163
162
162
161
161
159
158
156
154
153
150
148
144
143
140
137
134
132
128
127
124
121
124
121
109
114
119
109
107
112
110
110
107
106
111
113
110
113
116
116
119
122
123
124
127
129
132
136
138
140
144
145
148
151
153
155
156
159
160
160
162
163
161
161
165
161
159
159
159
156
155
152
151
149
145
143
140
138
135
133
130
127
125
123
121
118
116
114
113
111
111
109
109
109
108
109
109
110
111
113
114
116
118
120
122
125
127
129
132
134
137
139
143
145
148
151
153
155
156
158
159
161
161
163
162
163
162
162
161
159
158
157
155
153
151
148
147
144
141
138
135
133
130
128
126
123
121
119
117
115
114
112
111
109
109
108
109
109
109
110
111
112
114
116
117
120
122
125
127
129
131
134
137
139
142
144
147
149
152
154
156
157
159
161
161
162
162
162
162
162
161
160
159
157
156
153
152
149
145
143
144
141
137
134
130
128
126
123
122
120
116
115
115
113
111
110
111
109
108
108
111
110
109
111
114
115
116
120
122
124
126
129
131
133
137
138
142
147
147
146
151
152
153
159
159
159
163
162
160
164
163
161
162
160
158
157
156
155
153
149
147
145
143
139
138
134
130
129
127
124
121
120
118
115
114
112
111
111
109
109
109
109
109
109
110
111
113
115
116
119
121
123
126
127
130
133
136
138
141
144
146
149
152
153
155
157
159
159
161
162
162
163
162
162
161
161
159
158
156
155
153
150
148
145
143
140
138
134
132
129
127
125
122
121
118
116
114
112
111
111
110
110
109
109
109
110
111
111
113
114
116
118
120
123
125
127
129
132
135
138
140
144
146
148
151
153
155
156
159
159
161
161
162
162
163
162
161
161
159
158
157
155
153
151
148
146
144
141
138
135
133
129
127
125
123
121
119
117
114
113
111
111
110
109
109
109
109
110
111
111
113
114
116
118
120
122
125
127
129
132
134
137
139
142
145
148
151
152
154
155
158
159
161
161
162
162
162
162
162
161
160
159
157
155
153
151
149
146
144
141
139
136
133
130
128
126
123
122
118
117
115
114
112
111
109
109
109
109
109
109
110
111
112
113
116
117
120
121
124
127
128
131
133
136
139
142
144
147
149
152
154
156
157
158
161
161
162
162
163
162
162
161
160
159
157
156
154
152
149
147
145
142
139
137
134
131
129
127
124
122
120
118
115
114
112
111
110
109
108
109
109
109
110
111
112
113
115
117
119
121
124
126
127
131
133
136
138
141
143
146
149
151
153
155
157
158
160
161
162
162
162
162
162
161
161
159
158
156
154
153
150
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
113
111
110
110
109
109
109
109
110
111
111
113
114
116
119
120
123
125
127
130
132
135
138
141
143
146
148
151
153
155
156
158
160
160
162
162
163
162
162
162
161
159
158
157
155
153
150
148
146
143
140
138
135
132
130
127
125
122
121
118
116
114
113
111
111
110
109
109
108
109
109
110
111
113
114
116
118
120
123
124
127
129
132
134
137
140
143
145
147
150
152
155
156
158
159
160
162
162
163
162
162
162
161
159
158
157
155
153
151
149
146
144
141
139
135
133
130
127
126
123
121
119
117
115
114
111
111
108
114
109
103
112
112
108
109
115
116
114
115
119
124
125
126
128
132
133
137
140
141
144
147
150
151
154
156
158
159
160
161
162
162
162
162
163
162
160
157
158
157
152
151
150
147
144
141
140
138
134
131
128
127
124
122
120
117
115
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
122
124
127
127
131
133
136
139
141
144
146
149
151
154
155
157
158
160
161
162
162
162
162
162
162
160
159
157
156
154
153
150
147
144
142
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
109
108
109
109
109
110
111
112
113
115
116
119
120
123
126
128
130
133
135
138
141
143
147
148
151
153
154
158
157
158
164
165
155
162
169
161
158
163
160
159
155
151
154
153
147
144
144
139
137
136
131
128
127
125
122
121
118
116
115
113
112
111
110
109
109
109
109
109
112
111
111
114
118
120
120
122
125
127
129
132
135
139
140
142
145
148
150
152
155
156
158
159
161
162
162
163
162
162
161
161
160
158
156
155
153
151
148
146
144
141
139
135
132
130
127
126
123
121
119
117
114
113
111
111
110
109
109
109
109
110
111
111
112
114
116
118
120
122
124
127
129
131
134
137
140
142
145
147
150
152
154
156
158
159
161
161
162
162
162
162
161
161
160
159
157
155
154
152
150
146
144
141
139
136
134
130
128
126
123
121
119
117
115
114
111
111
110
109
109
109
109
109
110
111
113
113
115
117
120
121
124
127
128
131
133
136
139
142
144
147
150
151
154
155
158
158
161
161
162
162
162
162
162
161
160
161
157
153
155
154
151
148
144
141
140
135
133
132
128
126
125
123
120
117
116
116
111
110
110
111
108
108
109
109
109
111
113
114
115
117
119
121
124
126
127
132
135
134
136
141
141
146
151
150
154
157
156
158
162
161
162
163
162
161
162
162
161
159
157
157
155
152
151
149
145
143
140
137
134
132
129
127
125
122
121
118
116
115
112
111
111
110
109
109
108
109
110
111
112
113
115
117
118
121
123
125
127
129
132
135
138
141
143
146
148
151
152
155
157
158
159
161
162
162
163
162
162
162
161
160
158
157
155
153
151
148
146
143
141
138
135
133
130
127
126
123
121
118
117
114
113
112
111
110
109
109
109
109
109
110
111
113
114
116
118
121
123
125
127
129
132
134
137
140
143
145
147
150
152
154
156
157
159
161
161
162
163
163
163
161
161
160
159
157
155
153
151
149
147
144
141
139
135
133
130
128
126
124
121
119
117
115
114
111
111
110
109
109
109
109
109
110
111
112
113
116
117
120
122
124
127
129
132
134
137
139
142
144
147
149
152
154
155
157
159
160
161
162
162
162
162
162
161
160
159
157
156
154
152
150
147
144
142
139
136
134
130
128
127
124
122
119
118
115
114
112
111
110
110
109
109
109
109
110
110
112
113
115
117
119
121
124
126
128
131
133
136
138
142
144
147
149
151
154
156
157
158
160
161
162
162
162
162
162
162
160
159
158
156
154
153
150
147
145
142
140
137
134
132
129
127
125
122
120
118
115
114
112
111
110
110
108
108
109
109
110
110
111
113
115
116
119
120
123
125
127
130
132
135
137
141
143
146
148
150
153
155
157
158
161
161
161
162
162
163
162
162
161
159
158
156
154
153
150
147
145
143
140
137
135
132
130
127
125
123
120
118
116
115
112
112
110
110
109
109
108
109
109
110
111
112
115
116
118
120
123
125
127
129
132
135
137
140
143
146
147
150
152
154
156
158
159
160
162
162
163
163
162
161
161
159
158
157
155
153
150
149
146
144
141
138
135
133
131
127
126
123
121
119
117
115
113
112
110
110
109
109
109
109
110
111
111
112
114
115
118
120
123
124
127
128
131
134
137
139
142
145
147
150
152
154
156
158
159
160
162
162
163
162
162
162
161
160
159
157
156
154
152
149
147
144
142
138
135
134
135
126
123
127
124
115
116
117
115
110
108
111
111
109
107
109
110
110
111
112
113
115
118
119
121
123
126
128
131
133
136
139
142
145
146
149
153
152
154
160
158
160
160
163
162
162
162
163
163
160
159
158
156
154
152
150
147
145
142
140
136
134
131
129
127
124
122
119
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
123
126
127
130
133
136
138
141
143
147
148
152
154
155
157
158
160
161
162
162
162
162
162
162
160
160
158
157
154
153
151
148
145
143
140
137
135
132
129
127
125
122
120
118
116
114
112
111
111
111
107
108
110
115
105
106
119
113
111
117
120
121
122
122
127
133
132
134
138
140
142
147
148
150
153
155
156
158
159
160
162
162
162
163
163
162
161
160
157
156
156
153
151
147
147
145
140
137
135
132
130
127
125
124
121
118
116
114
112
112
111
110
109
109
109
109
110
110
111
112
114
116
118
120
122
125
127
129
132
135
137
140
143
145
148
150
152
154
156
158
159
160
162
162
163
162
162
162
161
160
158
157
155
154
151
149
146
144
141
139
136
133
131
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
122
124
127
128
131
134
137
139
142
145
147
150
152
154
156
158
159
160
161
162
162
162
163
162
162
160
159
158
156
154
152
149
147
144
142
140
137
133
130
128
126
124
122
119
118
116
114
112
111
110
109
109
108
109
109
110
111
112
113
115
117
119
121
124
126
127
131
133
136
138
141
144
146
148
151
154
155
158
158
160
161
162
163
162
159
163
164
161
161
157
156
154
151
150
148
145
141
140
139
135
130
130
127
124
121
120
119
115
113
112
111
109
109
110
109
109
110
110
110
111
113
114
118
121
119
121
125
125
130
135
134
139
143
142
146
150
150
153
155
156
157
159
161
162
162
162
162
163
161
161
161
157
156
155
152
150
148
146
143
140
138
136
132
130
127
125
123
121
119
116
114
112
111
110
110
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
135
137
140
142
145
148
150
152
154
156
158
159
161
162
162
163
162
162
162
161
159
158
157
155
153
151
148
146
144
141
138
136
133
131
127
126
123
121
119
117
115
113
112
110
110
109
109
108
109
109
111
111
112
114
116
118
119
122
124
127
128
131
134
136
139
142
145
147
150
152
154
156
157
159
161
161
162
162
162
163
161
161
160
159
157
155
154
152
149
147
144
141
139
137
134
131
128
126
123
121
119
117
115
113
112
111
110
109
109
108
109
109
110
111
112
114
115
117
120
122
124
126
128
131
133
136
139
142
144
147
149
152
153
155
157
159
160
161
162
162
163
162
162
162
160
160
157
156
155
152
150
147
145
142
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
110
112
113
116
117
119
121
123
126
127
130
132
136
138
141
144
146
148
151
153
155
157
158
160
161
162
163
163
163
162
161
160
159
158
157
155
153
151
148
145
143
140
137
134
132
129
127
125
122
120
119
116
114
112
112
110
110
109
109
109
109
110
111
112
112
115
116
118
120
123
125
127
129
132
135
138
141
143
146
148
151
153
155
157
158
159
160
161
162
162
162
162
162
161
160
158
157
155
154
151
149
146
144
141
138
135
132
130
127
126
123
121
118
116
115
113
112
111
110
109
109
109
109
109
110
111
112
114
116
118
120
122
124
127
129
132
135
137
139
142
146
148
150
152
154
156
157
159
161
162
162
162
163
163
162
161
160
158
157
155
154
151
149
146
144
141
138
136
133
131
128
127
124
121
119
117
115
114
112
111
110
109
109
109
109
110
110
111
112
114
116
118
120
122
124
127
129
131
134
136
140
142
145
147
150
152
154
156
157
159
160
162
162
163
162
163
163
158
164
162
153
155
158
152
145
148
148
142
137
135
135
133
127
126
125
122
120
118
115
113
112
111
110
109
109
109
109
109
110
111
112
113
116
118
118
123
121
126
130
129
134
135
140
141
143
146
150
152
153
155
157
158
160
161
162
162
163
163
162
161
161
160
158
157
154
153
150
148
146
143
140
138
135
132
129
127
125
123
121
118
116
115
112
111
110
110
109
109
108
109
110
110
112
113
115
116
118
121
123
126
127
130
132
135
138
141
143
146
148
151
153
155
157
158
160
161
162
162
163
162
162
162
160
159
158
162
151
148
157
149
142
144
143
139
135
129
130
130
125
121
122
119
116
116
113
111
111
110
108
109
109
109
110
111
111
113
114
116
119
120
122
125
127
129
132
132
139
142
141
145
148
151
151
154
156
159
160
160
161
162
162
162
162
161
161
160
158
157
156
154
151
149
146
144
141
139
136
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
122
124
127
128
131
133
137
140
142
145
147
150
152
154
156
157
159
160
161
162
162
162
162
161
161
159
159
157
156
154
152
149
147
144
142
139
136
134
131
128
127
124
121
119
118
115
114
111
111
110
109
109
109
109
109
110
111
112
113
115
117
118
121
123
126
127
131
133
136
139
141
144
147
149
152
154
155
157
158
160
161
162
162
162
162
162
161
160
159
157
156
154
152
150
147
145
142
140
136
135
131
129
127
124
122
120
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
123
126
127
130
133
136
138
141
143
146
148
151
153
155
158
156
158
162
164
163
163
162
162
162
159
160
158
156
153
153
152
147
145
143
142
137
134
133
130
126
124
123
120
118
116
115
113
112
111
110
109
109
108
109
112
111
109
112
114
114
120
121
121
127
128
128
133
136
136
141
143
145
148
150
153
155
156
158
160
161
162
163
163
162
162
162
160
160
158
157
154
153
152
149
146
143
141
138
136
133
130
127
126
123
121
119
117
115
112
112
111
110
109
109
109
108
110
110
111
112
114
116
118
120
122
125
127
129
132
135
137
140
142
145
147
150
152
154
156
158
159
160
162
162
162
162
163
162
161
160
159
157
155
154
151
149
146
144
141
139
136
133
131
127
126
123
122
119
117
115
113
112
111
110
109
109
109
109
109
111
111
112
113
115
117
119
121
124
127
128
131
134
137
139
141
145
147
150
151
154
155
157
158
160
161
162
162
162
163
162
162
161
159
158
156
154
152
150
147
145
142
140
136
134
131
129
126
124
122
119
118
116
114
112
111
110
109
109
109
110
109
110
110
112
113
115
117
119
121
123
126
127
131
133
136
139
141
144
146
149
151
153
155
157
158
160
161
162
162
162
162
162
162
161
160
157
156
154
153
150
147
145
143
140
137
135
131
129
127
125
123
120
118
116
114
112
111
110
109
109
109
109
109
110
111
111
113
115
116
118
121
123
125
127
130
132
136
138
141
143
146
148
151
153
154
157
158
160
161
162
162
162
162
162
162
161
159
158
157
155
153
150
148
146
143
141
138
135
133
130
127
126
123
121
118
117
115
113
111
110
110
109
109
108
109
109
110
111
112
114
116
118
120
122
124
127
129
132
135
137
140
142
145
148
150
152
155
156
157
159
161
161
162
162
162
162
162
161
160
158
157
155
153
151
149
146
144
141
139
136
133
130
127
126
123
121
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
114
116
117
119
122
125
127
128
131
134
137
139
142
145
147
150
151
154
156
158
159
160
161
162
162
163
162
162
161
160
158
157
156
154
152
150
147
145
141
139
136
133
131
128
127
124
122
119
117
115
114
112
111
110
109
109
108
109
109
110
111
112
114
115
117
119
121
124
126
128
131
133
136
138
141
144
146
149
150
158
154
153
162
163
158
159
165
164
161
159
162
163
159
156
157
155
152
150
148
144
141
140
137
134
131
129
127
125
122
120
118
116
114
111
112
111
109
107
110
109
108
109
111
111
113
115
118
120
120
123
125
127
130
133
135
137
141
144
146
148
151
153
155
157
158
160
160
162
162
163
162
162
161
160
160
158
157
154
153
150
148
146
143
140
138
135
132
130
127
125
123
120
119
116
114
112
111
110
110
109
109
109
109
110
110
111
112
114
117
118
118
127
127
120
130
138
132
134
143
144
146
146
148
154
157
155
157
161
160
162
163
162
161
163
162
161
161
158
157
155
153
151
149
147
144
141
138
136
132
131
128
124
122
124
118
115
114
114
111
111
109
110
110
108
109
109
110
111
113
114
115
118
120
123
125
127
128
132
134
137
140
142
145
147
150
152
154
156
158
159
161
162
162
162
162
162
162
162
160
158
157
155
153
151
150
147
144
141
139
136
133
131
128
127
124
121
119
118
115
114
112
111
110
109
109
109
109
109
110
111
113
114
115
117
119
122
124
126
128
131
133
136
139
142
144
147
149
151
154
155
158
158
160
161
162
162
163
163
162
161
160
159
158
156
154
152
150
147
145
142
140
137
134
131
129
127
124
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
112
113
116
116
119
121
124
126
128
131
133
136
138
142
144
146
148
151
153
155
157
158
160
161
162
162
163
162
162
162
161
159
158
157
154
153
150
148
145
143
140
137
135
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
109
110
112
112
114
116
119
121
123
125
127
130
132
135
138
141
143
147
148
148
153
156
158
159
159
159
162
161
162
163
162
160
161
161
159
156
155
155
151
147
146
145
141
137
135
133
129
127
126
123
121
119
117
115
113
112
110
111
111
107
107
109
108
110
113
112
115
118
117
119
124
124
127
130
131
133
137
141
143
145
147
151
153
155
157
159
159
159
161
161
162
162
163
161
161
160
159
157
155
154
151
149
147
144
141
139
136
133
130
128
126
123
122
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
122
124
127
128
131
134
137
139
142
144
147
150
151
154
156
157
159
160
162
162
163
162
163
162
162
160
159
157
156
154
152
150
147
145
142
139
136
134
131
129
127
124
122
119
118
115
114
112
111
110
109
109
109
109
109
110
110
112
114
115
117
119
121
123
126
127
131
133
136
138
141
144
147
149
151
154
155
157
159
161
161
162
162
163
162
162
162
161
160
157
156
154
152
150
147
145
143
140
137
134
131
129
127
125
123
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
116
119
121
123
125
127
130
133
135
138
141
143
146
148
151
153
155
156
158
159
161
161
162
162
162
162
161
161
159
158
157
155
153
150
148
146
143
140
138
135
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
111
113
114
116
118
120
123
125
127
130
132
135
137
141
143
145
148
150
152
154
156
158
159
160
162
162
163
162
162
162
161
159
158
157
154
153
151
149
146
144
141
138
135
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
116
118
119
122
124
127
129
131
134
137
139
142
145
147
150
152
154
156
158
159
161
162
162
162
162
162
161
161
160
158
157
156
154
151
149
146
144
142
139
136
133
131
128
126
124
121
119
117
115
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
121
124
127
128
131
133
136
138
141
144
147
149
151
154
156
158
158
160
161
162
162
162
162
162
161
161
160
158
156
154
152
150
147
144
142
140
137
134
131
129
127
124
122
120
118
116
114
112
111
110
110
109
109
109
110
110
111
111
114
114
115
120
124
120
123
131
133
129
135
141
142
141
144
149
154
153
154
157
159
160
161
162
161
162
162
162
161
161
159
158
156
154
153
150
147
146
143
139
140
133
131
131
126
125
121
122
118
115
114
114
112
110
109
109
109
108
109
109
110
112
114
115
116
118
121
123
125
127
130
132
135
138
140
143
145
148
150
153
155
156
159
159
161
162
163
163
162
162
162
161
159
158
156
155
153
151
149
146
144
139
138
135
138
127
123
131
124
118
119
118
115
112
108
110
112
109
107
109
109
109
112
111
111
114
116
118
120
122
124
127
129
131
134
138
140
142
145
146
149
153
154
157
155
160
163
160
162
162
164
162
162
161
161
159
156
156
154
151
149
147
144
141
139
136
133
130
128
126
123
122
119
117
115
114
112
111
109
109
108
109
109
109
110
111
112
113
116
118
119
122
124
127
128
131
134
137
139
142
144
147
149
152
154
156
158
159
160
161
162
163
163
162
162
161
160
159
157
156
154
152
149
147
144
141
139
136
134
131
129
127
124
122
120
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
116
119
121
124
126
128
131
133
136
138
141
144
146
149
151
154
156
157
158
160
161
162
162
163
162
162
162
161
159
158
157
155
153
150
148
145
142
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
110
108
109
109
110
109
110
111
113
115
116
119
120
123
125
127
130
133
136
138
140
143
146
148
151
153
155
157
158
160
161
162
162
163
162
162
161
161
159
158
157
155
153
150
149
145
143
140
138
135
133
130
127
125
123
121
118
116
114
113
111
110
110
110
110
109
109
109
110
111
113
114
116
118
120
122
124
127
129
132
135
136
137
144
147
149
151
152
154
156
156
159
162
161
161
163
163
162
161
162
162
158
155
156
154
150
148
147
144
140
139
136
133
130
128
126
123
121
118
117
118
114
109
110
108
107
110
111
108
111
111
109
113
115
114
118
120
120
123
127
129
132
133
136
140
143
144
149
151
151
154
155
157
158
161
161
162
162
163
162
162
162
161
159
157
156
153
152
149
146
144
141
140
136
134
131
129
126
124
122
119
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
116
117
120
121
124
126
128
131
133
136
138
142
144
147
149
152
153
156
157
159
160
161
162
162
163
162
162
162
160
159
158
156
154
152
150
147
145
142
140
137
134
131
129
127
124
122
120
118
115
114
112
111
110
110
109
109
108
109
110
111
112
113
115
116
118
121
124
126
127
130
132
136
138
141
143
146
148
151
153
155
157
158
160
161
162
162
163
162
162
161
160
159
158
157
155
153
150
148
145
143
140
138
135
132
129
127
125
123
121
118
117
115
113
111
111
110
109
109
109
109
110
111
111
113
115
116
119
120
123
125
127
129
132
135
138
141
143
146
148
151
153
155
156
158
159
161
162
162
162
162
162
161
161
160
158
157
155
153
151
149
146
144
141
138
135
133
130
127
125
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
113
116
118
120
122
124
127
129
132
134
137
140
142
145
148
150
152
154
156
158
159
160
161
162
162
162
163
161
162
160
158
157
156
154
152
149
147
144
141
139
136
133
131
128
126
124
121
119
117
115
114
112
111
110
110
109
109
109
109
110
111
112
113
116
117
119
121
124
126
128
131
133
136
139
142
144
147
149
152
154
155
157
158
160
161
162
162
163
162
162
162
160
159
158
156
154
152
150
147
144
142
139
137
134
131
129
127
124
122
120
118
115
114
112
111
110
110
109
109
109
109
110
111
112
114
115
117
119
121
123
126
127
130
132
136
138
141
143
147
149
151
153
156
157
158
160
161
162
162
162
162
163
161
161
159
158
156
154
153
150
148
145
143
141
138
134
132
129
127
125
122
121
118
116
113
113
109
115
110
104
110
112
108
106
113
114
112
111
116
121
122
122
125
128
130
132
136
137
140
143
146
148
151
153
155
156
158
159
161
161
162
162
164
162
163
158
159
161
154
155
153
152
148
145
144
142
139
135
132
130
127
125
123
120
119
117
115
113
111
111
109
109
109
109
109
110
111
111
113
114
116
118
120
122
125
127
129
132
134
137
139
141
145
147
157
149
147
162
161
156
160
163
163
162
160
161
165
162
158
159
157
155
154
151
147
146
144
141
139
136
133
131
128
126
124
122
118
117
115
113
112
111
109
110
106
110
111
108
109
111
114
113
115
117
121
123
124
127
129
131
134
137
139
142
144
147
149
152
154
155
158
159
160
161
162
162
162
162
162
161
161
159
158
156
153
152
149
147
144
142
139
136
133
131
128
127
124
121
120
117
115
113
112
111
110
110
108
109
109
109
110
111
112
113
115
117
119
121
124
126
128
130
133
136
139
142
144
147
149
151
153
156
157
158
160
161
162
162
163
162
162
161
161
159
158
156
154
153
150
148
145
143
139
137
134
132
129
127
125
122
120
118
116
114
113
111
110
110
109
109
109
109
110
111
111
113
115
117
119
121
123
125
128
130
133
135
138
141
144
146
149
151
153
155
157
158
160
161
162
162
163
162
162
162
161
159
158
157
155
153
150
149
145
143
140
138
135
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
111
113
114
116
118
120
123
125
127
129
132
134
138
140
143
146
148
151
153
155
157
158
159
161
162
162
162
162
162
162
161
160
159
157
155
153
151
149
146
144
141
139
135
133
130
127
126
123
121
118
117
115
113
111
111
110
109
109
108
109
109
111
111
113
114
116
118
120
122
125
125
127
133
136
138
140
142
145
147
149
152
155
155
156
160
162
161
161
163
164
161
161
162
161
158
156
156
153
150
149
148
144
141
140
136
133
131
127
126
127
122
117
116
114
111
113
112
109
111
110
107
110
110
109
111
112
112
115
118
120
122
124
126
129
131
133
137
139
141
144
147
148
151
154
156
157
159
160
161
162
162
163
162
162
161
160
159
157
156
154
152
149
148
145
142
139
136
134
131
129
127
125
122
120
117
116
114
112
111
110
110
109
109
108
109
109
111
111
113
115
117
119
121
123
126
127
130
133
136
138
141
144
146
148
151
153
155
157
159
160
161
162
162
162
162
162
162
161
159
158
156
154
152
150
148
145
143
140
137
134
132
129
127
125
123
121
118
116
114
112
111
110
109
109
109
109
109
109
111
111
113
114
117
119
121
122
125
127
129
132
135
138
140
143
146
148
150
153
155
156
158
159
161
162
162
162
162
163
162
161
160
158
156
155
153
151
148
146
144
141
138
134
132
130
128
126
123
121
119
117
115
113
111
110
109
109
109
109
109
109
110
111
113
114
116
118
120
122
124
127
129
132
134
137
139
143
145
148
150
152
154
155
158
159
161
161
162
162
162
162
162
161
160
159
157
155
153
152
149
147
144
141
139
136
133
130
127
126
123
121
119
117
115
113
112
111
110
110
109
109
109
109
110
111
112
114
115
117
120
122
125
127
128
131
134
137
139
142
144
148
150
152
154
156
158
159
160
161
162
162
162
162
162
161
160
159
157
156
154
149
149
147
144
142
139
137
133
131
129
126
124
121
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
124
126
127
131
133
136
138
141
144
146
149
151
153
155
157
159
160
161
162
162
162
162
162
161
160
159
158
156
154
152
150
148
145
143
140
137
135
131
129
127
125
122
120
118
116
114
112
111
111
110
108
109
109
109
110
111
112
113
115
116
119
121
123
125
127
130
133
135
138
141
144
146
148
151
153
155
157
159
159
161
162
162
163
162
162
161
161
159
158
156
154
153
150
148
146
142
140
136
140
132
125
130
128
120
118
121
118
113
111
111
113
111
107
108
109
109
109
111
110
112
114
116
118
120
123
124
127
129
133
135
137
141
142
146
148
150
151
156
157
157
158
162
162
162
162
163
164
162
161
159
159
157
155
153
150
148
146
144
140
138
135
133
130
128
126
123
121
118
117
115
112
118
110
102
113
113
106
107
111
111
111
111
111
118
119
118
122
125
126
130
132
133
137
140
142
145
148
149
152
154
155
157
159
160
161
162
162
163
162
162
163
157
159
160
154
153
152
150
146
144
141
139
137
133
131
128
126
124
122
119
117
116
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
120
121
124
126
129
131
133
137
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
163
162
161
161
159
157
156
154
152
149
148
144
142
139
137
134
131
129
127
124
122
120
118
115
114
113
112
111
109
109
109
109
110
110
111
111
113
115
116
119
121
123
126
127
130
133
135
139
141
144
146
148
151
153
156
157
159
159
161
161
162
163
163
162
161
160
159
158
156
155
152
151
148
145
143
140
137
134
132
129
127
125
123
120
118
117
114
113
111
111
110
109
109
109
109
109
111
111
113
114
116
118
121
123
125
127
129
132
135
138
140
144
146
148
150
153
155
157
158
159
161
161
162
163
163
162
161
161
160
158
157
155
153
151
148
146
144
141
138
135
132
130
127
125
123
120
118
116
115
113
111
111
110
109
108
109
109
110
111
111
112
114
116
118
120
122
125
127
129
132
134
137
139
142
145
148
150
153
154
156
158
159
161
161
162
163
162
162
162
161
161
158
157
155
153
152
149
147
144
142
139
136
133
131
128
126
123
121
119
117
116
113
112
111
110
109
109
109
109
110
110
111
112
114
114
115
121
123
125
127
128
130
133
135
139
142
144
145
150
153
154
155
158
160
159
160
163
163
162
161
162
161
159
159
158
156
153
152
149
147
144
142
139
139
136
129
127
126
122
121
122
117
116
115
111
111
111
109
108
110
108
108
109
112
113
113
114
118
120
121
124
127
127
130
133
135
138
141
144
146
148
151
153
155
157
159
160
161
162
162
162
162
162
161
160
159
158
156
154
153
150
148
144
143
139
137
134
132
129
127
125
122
120
118
116
114
113
111
110
110
109
109
109
109
110
111
111
113
115
117
119
121
123
125
127
130
133
135
138
140
143
145
148
151
152
155
156
158
160
161
161
163
162
162
162
162
161
159
158
156
155
153
151
148
145
143
140
138
135
133
129
127
125
123
120
119
116
114
113
111
111
109
109
108
109
109
109
111
111
113
114
116
118
120
123
124
127
129
132
134
137
140
143
145
148
150
152
154
156
158
159
161
161
162
163
162
162
162
161
159
158
157
155
153
151
148
146
144
141
139
135
133
130
128
126
123
121
118
117
115
113
111
111
110
110
109
109
109
109
110
111
112
113
116
117
120
122
124
127
129
132
134
137
139
142
144
147
149
152
154
156
158
158
161
161
162
162
162
162
162
161
160
159
157
156
154
152
149
146
144
142
139
136
133
130
128
126
124
122
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
124
126
127
131
134
136
139
142
144
147
149
151
153
156
157
159
160
161
162
162
162
162
162
162
161
159
158
156
154
152
150
148
145
143
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
110
109
111
111
113
115
117
119
121
123
125
127
130
133
135
138
140
144
146
149
151
153
156
157
158
159
161
162
162
162
162
162
161
161
159
158
156
155
152
151
148
145
143
140
138
135
132
130
127
125
122
120
118
117
114
113
111
110
109
109
109
109
109
110
111
111
114
115
116
118
121
123
125
127
129
132
134
138
140
143
145
148
150
153
155
156
158
159
161
161
162
163
163
160
164
165
155
157
161
157
148
151
151
147
141
138
140
138
133
129
128
126
123
122
118
117
114
114
111
110
109
109
109
109
109
110
110
111
113
114
116
120
118
122
127
126
129
130
136
137
139
142
145
149
149
152
154
156
158
158
161
160
161
168
165
154
164
167
157
156
159
156
155
150
146
149
145
140
139
137
133
131
129
125
124
122
119
117
116
113
112
111
110
109
109
109
109
110
110
111
112
114
116
115
119
124
124
125
128
131
133
136
139
142
145
146
149
152
154
156
157
159
160
161
162
163
163
162
162
162
160
159
158
156
154
152
149
147
144
142
139
137
134
131
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
111
113
115
116
119
121
123
126
128
130
133
136
138
141
144
147
149
152
153
156
157
159
159
161
162
162
163
162
162
161
161
159
158
156
155
152
150
147
145
143
140
138
135
132
129
127
125
122
120
118
116
114
113
111
111
109
110
109
109
109
110
111
111
113
114
116
118
121
123
125
127
130
133
135
138
140
143
145
148
151
153
155
156
158
160
161
161
163
162
162
162
162
161
160
158
157
155
153
151
148
146
143
140
138
135
133
130
127
125
123
121
118
116
114
113
111
111
110
109
109
109
109
109
111
111
113
114
116
118
120
122
124
127
129
133
135
137
139
143
145
148
150
152
154
156
158
159
161
161
162
162
163
162
162
161
159
158
157
155
153
152
148
146
144
141
139
136
133
130
128
126
124
121
119
117
115
114
112
111
110
110
109
109
109
109
110
111
112
114
116
117
120
122
124
127
129
131
134
136
139
142
144
147
150
152
154
156
157
159
160
161
162
162
162
162
162
161
161
158
157
156
154
152
149
147
144
142
139
136
133
131
128
127
124
122
120
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
124
124
127
132
135
137
140
140
144
146
148
152
154
155
156
160
161
161
162
163
163
161
161
162
161
158
157
156
154
151
150
148
145
142
140
137
134
132
127
127
127
123
118
117
114
112
113
112
110
110
109
108
109
110
109
111
111
112
113
117
119
121
123
125
128
130
133
136
138
140
143
146
148
151
154
156
156
158
160
161
162
162
163
162
162
161
161
159
158
156
155
152
150
148
145
143
140
138
135
132
129
127
125
123
120
118
116
114
113
111
111
109
109
109
109
109
109
110
111
113
114
116
118
120
122
125
127
129
132
135
138
140
143
145
148
150
153
154
157
158
159
161
161
162
163
162
162
161
161
160
159
157
155
153
152
148
146
143
140
138
135
133
129
127
125
123
121
118
117
115
114
111
111
109
109
109
109
109
109
110
111
112
114
116
117
120
122
125
127
129
131
134
137
139
142
145
147
150
152
154
155
157
158
161
161
162
162
162
162
162
161
160
159
157
156
154
152
148
147
144
141
138
136
134
131
128
126
124
121
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
114
116
117
120
121
124
126
128
131
133
136
138
142
144
147
149
152
153
156
157
159
160
161
162
162
163
162
162
161
160
159
158
156
154
153
150
147
144
143
139
137
134
131
129
127
124
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
112
114
115
116
119
121
124
126
128
130
133
136
138
141
144
146
149
151
153
155
157
158
160
161
162
162
163
162
163
161
161
159
158
156
154
153
150
148
145
143
140
137
134
132
129
127
125
122
120
118
117
114
113
111
111
109
109
108
109
110
110
111
111
113
115
117
118
120
123
125
127
129
132
135
138
140
143
145
149
150
153
155
156
158
159
161
161
162
162
162
162
162
161
159
158
157
155
153
151
148
146
144
141
138
135
133
130
127
125
123
121
119
116
114
113
111
111
109
109
109
109
109
109
110
111
112
114
116
118
120
122
125
127
129
132
134
137
140
142
145
146
155
152
149
159
162
157
158
164
164
161
159
162
164
162
158
159
157
156
154
152
148
146
144
142
138
136
133
130
128
126
124
121
119
117
114
114
112
111
108
111
109
108
107
109
110
109
117
114
110
122
123
118
123
127
129
132
131
135
142
144
143
147
150
152
155
157
157
158
161
161
162
162
162
162
162
161
161
160
157
156
154
152
150
147
145
143
136
136
137
130
128
126
125
121
120
117
116
115
112
111
110
109
109
109
109
109
110
111
111
114
115
117
119
121
124
126
128
130
133
136
139
141
144
146
149
152
153
156
157
159
160
161
162
162
162
162
162
162
161
159
158
156
154
153
150
147
145
143
139
137
134
132
129
127
124
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
111
113
114
117
118
120
123
125
128
130
133
135
138
140
143
146
149
151
153
155
157
159
160
161
162
162
162
162
162
161
161
159
158
157
155
153
151
148
146
143
140
138
135
133
129
127
125
123
121
118
117
114
113
111
111
110
109
109
109
109
110
111
111
112
114
116
118
120
122
125
127
129
132
134
137
140
143
145
148
150
153
155
156
158
159
161
161
162
162
163
162
161
161
159
159
156
155
153
152
149
146
144
141
138
135
133
130
128
126
123
121
119
117
115
113
111
111
109
109
109
109
109
110
110
111
112
114
115
117
120
122
125
127
129
131
134
137
139
142
144
148
149
152
154
156
158
159
161
161
162
163
163
162
162
161
160
159
157
156
154
152
149
147
144
142
139
136
134
131
128
126
124
121
119
117
116
113
112
111
110
109
109
109
109
110
110
111
112
114
115
117
119
121
124
126
128
131
134
136
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
163
163
161
161
159
158
156
154
152
150
147
144
143
139
137
134
131
129
127
125
123
120
117
115
114
113
111
111
109
108
109
109
109
110
111
111
114
115
117
119
121
124
127
127
127
134
137
139
142
143
145
148
150
152
156
156
158
160
162
162
162
163
164
162
160
161
161
157
155
155
152
150
148
146
143
140
138
135
132
129
127
124
124
123
117
114
114
111
111
112
109
110
110
108
109
111
110
111
114
114
115
118
121
124
125
127
131
133
135
139
141
143
145
148
150
152
155
157
158
159
161
162
163
163
163
162
162
161
160
158
156
155
153
152
149
146
144
141
138
135
133
130
127
125
123
121
119
117
115
113
111
111
110
109
109
109
109
110
110
111
112
114
116
118
120
122
125
127
129
132
134
137
140
143
145
148
150
153
154
156
158
159
161
162
162
162
163
162
162
161
160
158
157
156
154
152
149
147
144
141
139
136
133
131
128
126
124
121
120
117
115
113
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
124
127
129
131
134
137
139
142
145
147
149
152
154
156
157
159
160
161
162
162
163
162
162
161
160
158
158
156
154
152
149
147
144
142
139
137
134
131
129
126
124
122
120
117
116
114
113
111
110
109
109
109
109
110
109
111
111
114
115
117
119
121
124
126
127
130
133
136
139
141
144
147
149
152
153
156
157
159
160
161
162
162
162
162
162
161
161
159
158
156
154
152
150
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
110
110
111
111
113
114
117
119
121
123
125
127
130
132
135
138
141
143
147
149
151
153
155
157
159
160
161
162
162
163
162
162
162
161
159
158
156
155
152
150
148
145
143
141
138
135
132
130
127
125
123
121
118
116
114
113
111
110
109
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
134
137
140
143
145
148
150
152
154
156
158
159
161
162
162
163
163
162
162
161
159
159
157
155
153
151
148
146
144
141
139
136
133
130
128
126
123
121
119
117
115
113
112
111
109
109
109
109
109
109
110
110
112
115
113
122
121
116
126
130
128
127
135
139
138
140
143
150
151
151
153
156
158
159
161
161
162
162
162
162
162
161
160
159
157
155
154
152
155
145
138
148
140
132
135
132
129
125
123
120
121
118
115
115
112
110
111
110
108
109
109
109
109
111
112
113
115
116
119
121
123
126
129
131
134
136
139
143
141
147
151
150
153
156
158
158
160
161
163
163
162
162
162
161
161
159
157
156
155
153
150
147
145
142
140
137
135
131
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
109
111
111
113
115
117
119
120
124
126
127
130
133
136
138
141
143
146
149
152
153
155
157
158
160
160
162
162
163
162
162
161
161
160
158
157
155
153
150
148
145
143
141
138
134
132
129
127
125
122
121
118
116
114
113
111
110
110
109
109
109
109
110
111
111
113
115
116
118
120
123
125
127
129
132
135
138
141
143
146
148
150
153
155
156
158
159
161
161
162
163
162
162
161
161
159
158
157
155
153
151
149
146
144
141
139
135
132
130
127
126
123
121
119
116
115
113
111
111
110
109
109
109
109
110
111
111
113
114
116
118
120
122
124
127
129
132
135
137
139
142
145
147
150
152
155
156
158
159
161
161
162
163
162
162
162
161
160
159
157
156
153
152
149
147
144
141
139
136
134
130
128
126
123
122
119
117
115
114
112
111
110
109
109
109
109
110
110
111
112
114
116
117
119
122
124
127
129
131
134
137
139
142
144
147
149
152
153
156
158
158
160
161
162
162
163
163
162
162
160
159
157
156
154
152
149
147
144
142
139
137
134
131
129
127
124
122
120
118
116
114
111
111
109
110
109
109
108
109
109
111
112
114
115
117
119
121
124
126
128
130
133
136
139
141
144
147
149
151
153
155
157
158
160
161
162
162
162
162
162
161
161
159
158
156
154
152
150
148
145
143
140
137
135
132
129
127
125
122
121
118
116
114
112
111
110
110
109
109
108
109
110
111
111
113
115
116
119
120
124
126
128
128
131
137
139
142
144
146
148
150
151
155
157
158
159
161
162
162
163
163
163
160
160
161
158
156
154
153
150
148
146
144
140
138
136
132
129
127
125
123
124
120
114
113
111
111
112
110
110
111
108
108
111
112
111
113
114
114
116
120
123
125
126
129
133
135
138
141
143
144
147
150
152
154
156
158
159
161
162
162
162
163
163
162
161
160
158
157
156
153
151
148
147
144
141
139
135
133
130
128
126
123
121
119
117
115
114
112
111
109
109
109
110
110
110
110
111
112
114
115
117
120
121
124
127
129
131
134
137
140
142
144
147
149
152
154
156
157
159
160
161
163
162
163
162
162
161
160
159
157
156
154
153
149
147
144
142
139
136
133
131
128
126
124
122
120
117
116
114
112
111
110
110
109
109
109
110
110
111
111
113
115
117
119
121
124
126
128
130
133
136
138
141
144
147
149
152
154
156
157
158
160
161
162
162
163
162
162
161
161
159
157
156
155
153
150
148
145
143
139
137
134
131
129
127
124
122
120
118
116
114
112
111
110
110
109
109
109
110
110
111
112
113
115
117
119
121
123
126
127
130
133
135
138
141
143
146
148
151
153
155
157
158
159
161
162
162
162
162
162
161
161
159
158
157
155
153
150
148
145
143
140
138
135
132
129
127
125
122
120
118
117
114
113
111
111
110
109
109
109
109
109
110
111
113
114
117
118
120
122
125
127
129
132
134
137
140
143
145
148
150
152
155
156
158
159
161
161
162
162
162
162
161
161
159
159
157
155
153
151
149
146
144
141
139
135
133
130
128
125
123
121
119
117
115
113
111
111
110
109
109
109
109
109
110
111
113
114
116
118
120
122
125
127
129
132
134
137
140
143
145
148
150
152
154
156
158
159
161
161
162
162
162
162
161
161
159
159
157
156
154
152
149
147
144
141
140
133
138
132
123
127
127
121
116
119
118
113
109
110
112
111
107
108
110
110
111
111
112
113
116
117
119
121
124
127
127
131
135
142
136
138
149
148
148
151
153
158
157
156
158
164
162
161
163
163
164
163
160
158
158
157
153
152
149
147
145
143
139
137
134
131
128
127
124
122
121
118
116
111
113
113
109
110
109
110
108
109
110
111
112
112
115
117
119
121
124
125
127
130
133
136
139
141
144
146
149
151
154
155
157
158
160
161
162
163
163
162
162
162
161
160
158
157
154
153
150
148
145
143
140
137
134
132
129
127
125
123
120
118
117
114
112
112
111
110
109
109
109
109
110
111
111
113
114
116
118
120
123
124
127
130
133
135
138
140
143
146
148
151
152
155
156
158
159
161
162
162
163
162
162
162
161
159
158
157
156
153
151
149
146
144
141
138
135
132
129
127
126
123
121
118
117
115
113
111
111
110
109
109
109
109
109
110
111
112
114
116
118
120
122
124
127
129
132
134
137
139
143
145
148
150
152
154
156
158
159
161
162
162
163
162
162
161
161
160
159
157
156
153
152
149
146
144
142
139
135
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
113
114
115
117
119
122
124
127
128
131
133
137
139
142
144
147
150
151
154
155
158
159
160
161
162
162
162
163
162
161
160
159
157
156
154
152
149
147
144
142
139
136
134
131
128
126
124
122
119
118
115
114
111
111
110
109
109
108
108
109
110
111
112
113
115
117
119
121
124
126
127
131
133
136
139
141
144
146
149
151
154
155
157
158
160
161
162
162
163
162
162
162
160
159
158
156
154
152
150
147
144
143
140
137
135
131
129
127
125
123
120
118
115
114
112
111
110
110
108
109
108
109
110
111
112
113
115
117
119
121
123
126
127
130
133
135
138
141
144
146
148
151
153
155
157
158
160
160
162
162
163
162
162
162
161
160
158
157
154
153
150
149
145
143
141
137
134
132
130
127
126
123
121
118
116
115
113
111
110
110
109
109
108
109
109
111
111
113
115
116
119
120
123
125
127
130
130
132
139
142
144
147
148
150
152
154
156
159
159
159
162
163
163
162
163
162
161
158
159
158
154
152
151
149
145
144
142
138
135
133
130
127
126
123
120
121
119
113
111
111
109
110
110
109
110
110
108
111
112
111
113
117
117
118
122
125
127
127
131
135
137
140
143
146
147
149
152
154
155
157
159
160
161
162
163
162
163
162
161
160
159
157
155
153
152
149
146
144
141
139
136
133
131
128
126
124
121
119
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
124
126
128
131
133
136
139
142
145
147
150
152
154
155
157
158
160
161
162
162
162
163
162
162
160
159
157
156
154
152
149
148
144
142
140
137
134
131
128
127
124
122
120
118
116
114
112
111
110
110
108
108
109
110
110
110
111
113
115
116
119
121
123
125
127
130
132
135
138
142
144
146
149
151
153
155
157
158
160
161
162
162
162
162
162
161
160
159
158
157
155
152
150
148
145
143
140
137
135
132
129
127
125
122
120
118
116
114
112
112
110
110
109
109
109
109
110
111
111
113
115
116
119
120
123
125
127
130
132
135
138
140
143
145
148
150
152
155
156
158
159
161
162
162
163
162
162
161
161
159
158
157
155
153
151
148
146
144
141
138
135
132
130
127
126
123
121
119
116
114
113
111
111
110
108
109
108
109
109
110
111
113
114
116
118
120
122
124
127
129
132
134
137
140
142
145
147
150
152
154
156
158
159
161
162
162
163
162
163
161
161
160
158
157
155
153
151
149
146
144
141
139
136
133
130
128
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
118
119
122
124
127
128
131
134
137
139
141
144
147
149
152
153
156
157
158
161
166
161
158
166
166
159
159
162
161
156
153
153
154
150
145
144
143
140
136
133
132
127
125
127
125
114
116
120
112
110
112
111
110
108
106
109
114
107
109
115
111
116
116
120
120
123
126
128
132
133
135
138
141
144
147
148
151
154
156
157
158
161
161
161
160
165
163
161
161
161
160
157
155
154
154
150
148
145
143
140
137
135
131
129
127
125
122
121
118
116
114
112
112
110
109
109
109
109
109
110
111
112
113
115
116
119
121
123
125
127
130
133
135
138
140
144
146
148
151
153
155
157
158
160
161
162
162
163
162
163
162
161
159
158
157
155
153
150
148
145
143
140
138
135
132
130
127
125
123
121
119
117
115
113
112
110
110
109
109
108
109
109
111
111
113
114
116
118
120
123
125
127
129
132
135
137
140
143
146
148
150
152
155
156
158
159
160
161
162
163
162
162
161
161
159
158
157
155
153
151
149
146
144
141
138
135
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
118
120
122
124
127
128
131
134
137
139
143
145
147
149
152
154
156
158
158
160
161
162
163
163
163
162
161
160
159
158
156
154
152
149
147
144
141
139
136
134
131
128
127
124
122
119
117
115
114
112
111
110
109
109
109
109
110
110
111
112
114
115
117
119
122
124
126
127
131
133
136
139
141
144
146
149
151
154
155
158
159
160
161
162
163
162
163
162
162
160
159
157
156
154
152
150
147
145
142
140
137
135
132
129
127
124
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
118
121
122
126
127
130
132
136
139
141
144
146
149
151
154
155
157
158
160
161
162
162
162
162
162
161
160
160
158
157
154
153
150
148
145
143
140
137
135
132
130
127
125
122
120
119
116
115
112
111
110
110
109
109
109
109
110
110
111
113
115
116
119
120
123
125
127
130
132
135
137
141
143
146
148
150
153
155
156
158
159
161
162
162
162
162
162
162
161
160
158
157
155
153
151
148
146
143
141
138
136
132
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
118
119
122
125
127
129
132
135
135
138
144
147
148
151
152
154
156
156
159
161
161
161
163
163
163
162
162
160
157
156
156
154
150
148
147
143
140
139
136
133
130
128
127
123
122
119
116
117
115
111
109
109
108
109
110
109
111
111
110
113
115
115
117
120
121
122
126
129
132
133
135
140
142
144
148
151
151
153
155
157
158
160
161
162
162
163
163
162
161
160
158
157
156
154
152
149
146
144
141
139
137
134
131
128
127
124
122
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
123
126
127
130
133
136
138
141
143
146
149
151
153
155
157
158
159
161
162
162
162
162
162
161
161
159
158
156
154
152
150
148
145
142
140
136
134
131
129
127
124
123
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
118
121
123
125
127
130
133
136
137
141
143
146
148
151
153
154
157
158
160
161
162
162
162
162
162
162
161
159
158
156
155
153
151
148
146
143
141
138
135
132
130
127
125
123
121
119
116
114
113
111
110
110
109
109
109
109
110
110
111
112
114
116
118
120
122
124
127
129
132
134
137
140
143
146
147
150
152
154
156
158
160
161
162
162
163
162
162
162
161
160
157
157
156
154
152
149
146
144
141
139
136
132
130
127
126
123
121
119
117
115
113
112
110
110
109
109
109
109
109
110
111
112
114
115
118
119
122
124
127
129
132
133
136
139
142
145
147
150
151
154
155
158
159
160
161
162
162
162
162
161
162
160
159
157
156
154
152
150
147
144
141
139
136
134
131
128
126
124
122
119
118
115
113
112
111
110
109
109
109
109
109
110
110
113
113
114
118
124
119
120
129
131
127
132
139
140
139
142
146
152
151
153
155
156
163
163
154
162
167
161
160
163
162
161
158
155
157
156
152
149
147
146
142
143
134
134
134
127
127
123
123
119
117
115
115
114
111
109
110
109
109
108
109
111
109
111
116
115
116
119
122
123
126
127
130
134
135
137
140
143
146
149
151
153
155
157
158
160
161
162
162
163
162
162
161
160
159
158
157
155
153
150
148
145
143
140
137
135
132
130
127
125
123
121
119
116
115
113
111
110
109
109
109
109
109
109
111
111
113
115
116
119
120
123
125
127
129
132
135
137
140
143
146
148
151
153
155
156
157
159
160
162
162
163
162
162
162
161
160
158
157
155
153
151
149
146
144
141
138
136
132
130
127
126
123
121
119
117
115
113
112
110
110
109
109
109
109
109
110
111
112
114
115
118
119
122
125
127
129
132
135
137
140
142
145
147
150
152
154
156
157
159
160
162
162
163
162
162
162
161
160
158
157
156
154
152
149
147
144
141
139
136
133
131
127
127
124
121
119
117
115
113
112
111
110
109
109
109
109
109
110
110
112
114
115
118
119
122
124
127
129
131
134
136
139
141
144
147
150
152
154
156
157
159
160
161
161
163
162
163
162
161
160
159
157
156
154
152
150
147
144
142
140
137
134
131
128
127
124
122
120
118
116
114
112
111
111
110
110
109
109
109
109
110
112
113
115
117
119
121
123
126
127
131
133
136
139
141
144
146
149
151
153
155
157
158
160
161
162
162
162
163
162
162
161
160
158
157
154
152
150
148
145
142
140
137
135
132
129
127
125
123
121
119
116
114
112
111
110
110
109
109
109
109
110
111
111
113
115
116
118
121
123
126
127
130
132
135
138
141
143
145
148
151
153
155
157
158
161
161
161
161
162
162
162
162
161
160
158
157
155
153
150
148
146
144
141
138
135
132
130
127
126
123
120
119
116
114
112
111
110
110
109
109
110
110
110
110
111
113
115
116
118
120
123
125
127
129
132
134
137
140
142
145
148
150
153
154
157
158
159
161
161
162
163
163
162
162
161
160
158
157
155
154
151
149
147
144
142
139
136
133
131
127
126
123
121
119
116
115
113
112
111
110
109
109
109
109
110
110
111
112
114
115
118
120
122
124
127
129
131
134
137
138
139
146
149
151
153
154
155
157
158
160
162
161
162
162
163
162
161
162
160
157
154
155
153
149
146
145
141
138
136
134
131
128
127
124
122
119
117
114
115
115
110
108
108
108
109
110
110
111
112
111
114
117
116
119
122
123
125
127
131
135
135
138
142
145
146
150
153
153
155
157
158
160
161
162
162
162
163
162
162
161
159
158
156
155
152
150
147
145
142
140
137
134
132
129
127
124
122
120
118
116
114
112
111
111
109
109
108
109
109
110
111
111
113
114
117
118
121
123
126
127
130
133
135
138
140
144
146
149
151
153
155
157
158
160
161
161
162
162
163
162
162
161
160
158
157
155
153
151
148
146
142
141
137
135
132
130
127
125
123
120
119
116
115
113
111
110
110
109
108
109
109
109
111
111
112
114
116
118
120
122
125
127
130
132
134
137
140
143
145
148
150
153
154
156
158
160
161
161
162
163
163
162
162
161
160
158
157
155
153
151
149
146
144
141
138
135
132
130
127
126
123
121
119
117
115
113
112
111
110
110
108
109
109
110
110
111
112
114
115
118
120
122
125
126
129
131
134
137
140
142
145
147
150
152
154
156
157
159
161
162
162
163
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
136
133
131
128
126
124
121
119
117
115
113
113
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
124
126
128
131
134
136
139
141
144
147
149
152
154
156
157
159
160
162
162
163
162
162
162
161
160
159
158
156
154
152
150
148
145
142
140
137
134
131
129
127
122
125
123
113
114
118
114
106
112
111
108
109
111
105
111
115
111
111
116
118
121
120
119
126
130
130
133
135
137
141
145
146
149
151
153
154
158
158
160
158
162
164
162
162
162
162
161
158
158
159
155
152
147
150
147
141
140
137
135
132
130
127
126
123
119
118
116
114
113
111
110
110
109
109
109
109
110
110
112
112
115
116
118
121
123
126
127
130
132
135
138
140
143
146
148
150
153
154
157
158
160
161
162
162
162
163
162
162
161
160
158
157
155
153
151
148
146
143
141
138
135
133
130
127
126
123
120
119
116
115
113
111
110
110
109
109
108
109
110
110
111
113
114
116
118
120
122
125
127
129
131
135
137
140
143
145
148
150
152
154
156
157
159
161
162
162
162
162
162
162
161
160
158
157
155
153
152
149
147
144
142
138
136
133
131
127
126
124
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
116
118
120
122
125
127
129
131
134
136
139
142
145
147
150
152
154
156
157
159
160
162
162
162
162
162
162
161
160
159
158
156
154
152
150
147
145
142
140
137
134
131
129
127
124
122
119
118
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
123
127
127
131
133
136
139
141
144
147
149
151
153
155
157
158
160
161
162
162
163
162
162
162
161
160
158
156
154
152
150
148
145
142
140
137
134
132
129
127
125
122
120
119
116
114
112
112
110
109
109
109
109
109
110
110
111
113
114
117
119
121
123
126
127
130
132
136
138
141
143
146
149
151
153
155
157
158
160
161
162
162
162
162
162
162
161
160
158
157
155
153
151
148
146
143
141
138
135
132
130
127
126
123
120
119
117
115
113
112
111
110
109
109
109
109
110
110
111
113
115
116
118
120
122
125
127
130
132
135
137
140
142
145
148
150
153
155
156
158
159
161
162
162
162
162
162
162
161
160
158
157
156
153
152
149
147
144
141
138
136
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
110
110
111
113
114
115
117
119
121
124
127
129
131
134
137
140
142
145
148
150
152
154
156
158
159
160
161
162
162
162
162
162
161
161
158
158
155
154
152
150
147
144
142
138
137
133
131
128
127
124
122
119
118
115
114
112
111
110
109
109
109
109
110
109
111
112
114
116
118
119
121
124
127
128
131
133
136
139
141
142
146
151
153
155
156
157
159
159
160
162
163
162
162
163
162
160
159
159
157
153
152
151
148
144
142
140
136
133
132
129
127
125
122
120
118
116
113
112
114
111
107
107
107
108
110
110
111
114
113
114
118
119
120
123
126
127
129
133
137
139
139
144
147
149
151
154
156
156
158
159
160
161
162
163
162
161
162
161
160
158
156
155
152
151
148
145
143
140
138
135
132
129
127
125
123
120
119
116
115
113
111
110
109
109
108
108
109
109
111
111
113
114
116
118
121
123
125
127
129
132
135
138
140
143
145
148
150
153
155
156
158
159
161
162
162
163
163
162
162
161
160
159
157
155
152
151
148
146
143
141
138
135
133
130
127
125
123
121
119
117
115
113
112
111
109
110
109
109
109
110
110
111
112
114
116
118
120
122
124
127
129
132
134
137
140
142
145
148
149
152
154
156
158
159
160
161
162
162
163
162
162
161
160
158
157
155
153
152
149
147
144
142
139
136
133
131
127
126
123
122
119
117
116
113
112
111
110
109
109
109
109
110
110
111
111
114
115
117
119
122
124
127
128
131
133
136
140
141
144
146
149
152
154
156
157
159
159
161
162
162
162
162
162
161
161
158
157
156
154
152
150
147
144
142
139
137
134
132
128
127
124
122
119
118
116
114
112
111
110
109
109
109
109
109
109
111
112
113
115
117
119
121
123
126
127
130
133
135
139
141
144
146
148
151
154
155
157
158
159
161
161
161
163
160
167
162
155
162
162
154
151
155
153
146
141
143
141
137
137
134
125
126
129
122
117
118
117
115
111
109
111
111
109
108
110
109
110
112
111
112
117
114
118
123
121
126
127
131
132
135
139
141
145
146
147
150
154
155
157
156
161
162
161
162
162
163
162
161
161
161
158
156
155
153
151
149
146
143
141
138
135
132
130
127
125
123
121
119
116
114
112
111
111
110
110
109
109
109
110
110
111
113
115
116
118
120
122
125
127
129
132
134
137
140
143
145
148
150
153
154
157
158
159
161
162
162
163
163
162
162
161
160
158
157
156
153
152
148
147
143
141
139
136
133
130
127
126
124
122
119
116
115
113
112
111
109
109
109
109
109
110
110
111
112
114
116
118
120
122
125
126
129
131
134
136
139
142
144
147
149
152
154
156
158
160
159
161
162
163
163
162
162
161
160
159
157
156
153
152
149
147
144
142
139
137
134
131
128
127
124
122
119
117
116
113
112
111
110
109
109
109
109
110
110
111
112
114
115
118
119
121
124
126
128
130
134
135
139
141
144
147
149
152
154
155
157
159
160
161
162
163
162
162
162
161
161
159
158
156
154
152
150
148
145
143
140
137
134
132
129
127
124
122
120
118
116
114
113
111
110
110
109
109
109
109
110
111
111
113
115
117
118
121
123
125
127
130
133
135
139
141
144
146
149
151
153
155
157
159
160
161
161
163
162
163
162
162
161
159
158
156
155
152
150
148
145
143
141
138
135
132
129
127
125
123
120
119
117
115
113
111
111
109
109
109
109
109
109
111
111
113
114
116
118
121
123
125
127
130
132
135
138
140
143
145
148
150
153
154
157
158
159
161
161
162
163
163
163
162
161
159
158
157
155
153
151
148
146
143
141
138
136
133
130
127
125
124
121
120
117
115
113
112
111
110
109
109
109
109
110
110
112
112
114
116
118
120
122
125
127
129
132
134
137
139
142
144
147
150
152
154
156
158
159
161
161
162
163
162
162
162
161
160
159
157
156
154
152
149
146
144
142
139
136
133
131
128
126
124
121
119
117
115
114
112
111
110
109
109
109
109
110
110
111
112
114
115
117
119
121
124
126
129
131
134
136
139
142
144
147
149
152
154
156
157
158
160
161
162
162
162
162
162
161
160
159
158
156
154
152
149
147
145
142
139
137
134
131
129
126
124
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
114
115
117
119
121
123
126
128
130
133
136
138
142
142
144
150
153
155
156
156
158
159
160
162
163
162
161
162
162
160
159
158
157
153
152
150
149
144
142
140
137
134
132
130
127
124
123
120
117
116
113
111
113
112
108
107
107
107
110
111
111
113
113
113
117
120
120
122
126
127
128
133
136
138
139
142
146
149
150
154
156
156
157
159
161
161
163
162
162
161
162
161
159
158
157
155
154
151
148
145
143
141
138
135
133
130
127
125
123
120
118
116
115
113
111
110
109
109
109
109
109
109
110
111
113
114
116
118
120
122
125
127
130
132
134
137
139
143
145
148
150
152
154
156
157
159
160
161
163
162
162
162
162
161
160
158
157
155
153
152
149
147
144
141
139
136
133
130
128
126
123
121
119
117
115
113
112
110
110
110
109
109
109
109
110
111
112
114
115
117
120
121
124
126
129
131
134
136
139
142
144
147
149
152
154
156
158
159
160
162
162
163
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
137
134
131
128
127
124
122
120
118
115
113
112
111
111
109
109
109
109
109
110
111
111
113
115
117
119
121
124
126
128
130
134
136
138
141
144
146
149
151
153
155
157
159
160
161
162
162
163
162
162
161
161
159
158
156
154
152
150
148
144
143
140
137
134
132
129
127
125
122
120
118
116
114
113
111
111
110
109
109
109
109
110
111
111
113
115
117
118
121
122
126
128
127
137
138
134
141
148
147
144
152
156
155
153
157
161
161
166
163
156
165
167
160
159
160
159
158
153
150
152
150
145
143
141
138
135
133
128
127
126
122
119
120
116
114
112
112
110
110
109
109
111
109
109
110
113
113
113
115
120
121
122
125
127
130
132
134
138
141
143
145
148
150
152
155
156
157
159
161
161
163
162
162
162
162
161
160
159
157
155
153
152
149
147
143
141
138
135
133
130
128
125
123
121
119
117
115
113
112
111
110
109
109
109
109
110
110
111
112
113
116
117
120
122
125
127
129
132
134
137
140
142
145
148
150
153
154
156
157
159
161
161
162
162
163
162
162
161
160
158
157
156
153
152
149
147
144
141
139
136
134
131
128
126
124
121
119
117
115
113
112
111
110
109
109
109
109
110
110
111
112
114
115
117
120
121
124
126
128
131
133
136
138
142
144
147
149
152
154
156
157
159
160
162
162
162
163
163
162
161
161
159
158
156
154
152
149
147
144
143
139
137
134
131
129
126
124
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
114
115
116
119
121
123
125
128
130
132
135
138
141
144
146
148
152
153
155
156
159
161
161
161
162
162
162
162
161
161
159
157
157
155
152
150
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
113
111
110
109
109
109
109
110
109
111
111
113
114
116
118
120
123
125
127
129
133
135
138
140
143
145
148
150
152
155
156
158
159
161
161
162
162
162
162
161
161
159
158
157
155
153
151
148
145
143
141
138
135
132
130
127
126
123
121
118
116
114
113
112
111
109
109
109
109
109
109
110
111
113
114
116
118
120
122
125
127
129
132
135
137
140
142
145
148
150
152
154
156
158
159
161
161
163
162
163
162
162
161
160
159
157
155
153
151
149
147
144
141
138
135
133
131
128
126
124
121
119
117
115
114
112
111
110
109
108
109
109
110
110
111
112
114
116
117
120
122
124
126
128
131
134
136
139
142
144
147
149
152
154
156
158
159
160
161
163
162
163
162
162
161
160
159
157
156
154
152
149
147
144
142
139
137
133
131
128
127
124
122
120
118
116
113
112
111
110
110
109
109
109
109
110
111
112
114
115
117
119
121
124
126
128
131
134
135
139
141
144
147
149
151
153
155
157
159
160
161
162
162
162
162
162
161
161
159
158
156
155
152
150
148
144
143
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
111
113
115
116
119
121
123
125
127
130
133
135
138
141
144
144
147
152
154
156
157
158
159
160
161
162
163
161
162
162
162
159
158
157
156
151
150
149
146
142
139
139
134
131
129
127
125
123
121
118
116
114
112
111
114
110
107
107
107
108
111
111
111
115
114
115
119
121
121
125
127
128
131
134
140
140
142
145
149
150
152
156
157
157
158
160
161
161
162
162
162
161
161
160
159
157
156
153
152
149
146
143
141
138
135
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
108
109
109
110
111
112
113
116
118
120
122
125
127
128
131
134
137
140
142
145
147
149
152
154
156
158
159
161
161
162
162
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
136
133
131
128
126
123
121
119
117
115
114
112
111
110
109
108
109
109
110
110
111
112
113
115
116
119
121
123
126
128
131
134
136
138
141
144
147
149
151
154
155
157
159
160
160
162
162
162
162
162
161
160
159
158
156
154
153
149
148
144
143
140
137
134
131
129
127
125
121
119
117
116
115
112
111
110
109
109
109
108
109
109
111
112
113
115
117
119
121
123
126
127
130
133
135
138
140
144
146
148
151
153
155
157
158
160
161
161
162
162
162
162
161
160
159
158
156
155
153
150
148
145
143
140
138
135
132
130
127
125
122
120
119
116
115
113
109
114
112
104
108
113
110
105
112
114
114
111
112
124
124
116
126
132
128
131
136
138
141
142
144
149
152
152
154
156
158
161
162
161
162
162
163
163
161
159
160
158
155
154
154
151
148
146
144
141
138
136
132
129
126
127
124
119
119
118
115
113
111
111
111
109
108
108
109
109
111
111
112
114
116
118
120
122
125
127
129
132
134
137
139
142
145
147
150
152
154
156
158
159
160
161
162
162
163
163
162
161
160
159
157
156
153
152
149
146
144
141
139
135
133
130
128
126
124
121
119
117
115
113
112
111
109
109
109
109
109
109
110
111
112
114
116
117
120
122
124
127
128
131
133
137
139
142
144
147
149
152
154
156
158
158
160
161
162
162
163
162
162
161
161
159
157
156
153
152
149
148
145
142
139
137
134
131
128
127
124
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
121
124
126
128
130
134
136
139
141
143
146
148
152
153
155
157
158
160
161
162
162
163
162
162
162
161
159
158
157
154
153
150
148
145
143
140
137
135
132
129
127
125
122
120
118
116
114
113
111
111
110
109
109
109
110
110
111
111
113
115
117
119
121
123
125
127
130
133
135
138
141
143
146
148
151
153
155
157
158
160
161
162
162
162
162
163
161
161
159
159
156
155
153
150
149
146
144
140
138
135
133
130
127
125
123
121
118
116
114
113
111
110
109
109
109
109
109
109
110
111
113
114
116
118
120
122
125
127
129
132
134
138
140
143
145
148
150
152
155
156
158
159
161
161
162
162
162
162
162
161
160
159
157
155
153
151
149
146
144
141
139
136
133
130
127
126
124
121
119
117
115
113
112
110
110
109
108
109
109
110
110
111
112
114
116
118
120
122
124
127
128
131
134
137
139
142
145
148
150
152
154
156
158
159
161
161
162
162
162
162
161
161
159
159
157
156
154
151
149
146
144
141
140
136
134
131
129
126
124
122
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
124
126
127
131
133
136
139
142
144
147
149
152
154
156
157
158
160
161
162
162
162
162
162
161
161
159
158
156
154
152
149
147
145
142
140
137
134
131
129
127
124
122
120
117
116
114
112
111
110
110
109
109
109
110
110
111
111
113
115
117
119
121
123
125
127
130
133
135
138
140
144
146
148
152
153
155
157
158
159
161
161
163
163
162
162
161
161
159
158
156
155
153
150
148
145
143
140
138
135
132
129
127
125
122
120
118
116
115
113
111
111
110
109
109
109
110
110
111
111
113
114
117
118
120
123
125
127
129
132
135
138
139
143
144
145
151
154
156
157
158
158
161
161
162
163
163
161
162
162
160
158
157
156
153
150
149
147
143
140
138
135
132
129
128
126
123
121
119
117
115
114
110
112
112
109
106
107
107
109
111
111
114
115
115
118
122
121
124
127
128
130
133
138
141
142
143
148
151
152
155
157
157
158
161
161
162
162
163
162
162
161
161
159
157
155
153
152
149
147
144
141
139
136
133
130
128
126
124
121
120
117
115
114
111
111
110
110
109
109
109
109
110
111
112
114
116
117
119
121
124
127
128
131
133
136
139
142
144
147
150
152
154
156
157
159
161
161
162
162
162
162
162
161
160
159
158
156
154
153
149
148
144
142
140
136
134
131
128
126
124
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
111
113
115
116
119
121
123
126
128
130
133
135
138
141
144
146
149
152
153
155
157
158
160
161
162
162
162
162
162
161
161
159
158
156
154
153
150
148
145
143
140
137
135
131
129
127
125
122
120
118
116
114
113
111
111
110
109
109
109
109
109
111
111
113
115
116
118
121
123
125
127
130
133
135
138
140
143
146
148
151
153
155
156
158
159
161
162
162
162
162
162
161
161
160
158
157
155
158
150
143
150
147
138
136
137
133
128
124
124
130
124
110
117
120
112
111
112
109
110
108
106
110
111
110
111
113
114
117
119
119
121
126
127
131
130
134
139
138
143
144
149
150
151
155
157
159
159
160
161
163
159
163
164
160
161
161
160
156
155
153
153
149
146
144
141
139
136
133
130
128
126
123
121
119
118
115
114
112
111
110
109
109
109
109
109
110
111
113
113
116
117
120
122
125
127
129
132
134
137
139
142
144
148
150
152
154
156
158
159
160
161
162
162
162
162
162
161
160
159
157
156
153
152
149
147
144
142
139
136
134
131
129
126
124
121
119
117
115
114
112
111
110
110
109
109
109
110
110
111
112
113
116
117
119
121
124
126
128
131
133
136
138
141
144
147
149
151
154
155
157
158
160
161
162
162
163
162
162
162
160
159
157
156
154
153
150
148
144
143
139
137
135
131
129
127
125
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
112
113
115
116
119
121
124
126
127
130
133
135
138
141
144
146
148
151
153
155
157
158
160
161
162
162
163
162
162
162
161
160
158
157
155
153
150
148
145
143
140
137
135
132
129
127
125
123
121
118
116
115
113
111
111
110
109
109
108
109
109
111
111
113
115
116
118
120
123
125
127
129
132
135
137
140
143
145
148
150
152
154
156
158
159
161
162
162
163
162
162
162
161
160
158
157
155
153
151
148
146
144
140
138
135
133
130
127
126
123
121
119
116
115
114
112
111
110
109
108
109
109
109
110
111
113
114
116
118
120
122
124
127
129
132
134
137
139
143
145
147
150
152
154
156
158
159
161
161
162
162
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
135
133
130
128
126
124
121
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
124
126
128
131
133
137
139
142
144
147
149
151
154
156
157
158
160
161
162
162
162
162
162
161
160
159
157
156
154
152
150
148
144
142
139
136
134
131
129
126
124
122
120
118
115
114
112
111
111
110
109
109
109
109
109
111
111
113
115
116
119
121
123
126
128
130
133
135
138
141
144
146
148
151
153
155
157
159
160
161
162
162
162
162
162
161
161
159
158
157
155
153
150
147
145
143
140
138
134
132
129
127
125
122
120
118
116
114
113
111
110
110
109
109
109
109
109
111
111
113
114
116
118
120
123
125
127
130
132
134
137
140
144
146
148
151
152
155
157
159
159
160
161
162
162
162
162
161
161
160
158
157
155
153
151
148
146
144
141
138
135
132
130
127
125
123
120
118
117
114
113
111
111
110
109
109
109
109
109
111
111
113
114
116
118
120
122
125
127
129
132
134
137
140
143
145
148
148
150
155
158
159
160
160
161
162
161
163
162
161
160
160
159
157
156
154
152
147
146
145
142
138
135
134
130
127
126
124
121
119
117
115
113
112
111
109
113
109
107
107
108
110
112
113
114
118
117
119
123
126
125
129
131
132
135
139
144
145
146
149
153
154
156
160
159
160
161
162
162
162
162
162
161
160
159
158
156
154
152
149
147
144
142
139
136
134
131
129
127
125
122
119
118
115
114
112
111
110
109
108
109
109
110
110
111
112
113
115
117
119
121
124
126
128
131
133
136
138
141
144
147
149
151
153
156
157
158
160
161
162
162
163
162
162
162
161
159
158
156
154
152
150
148
145
142
140
137
134
132
129
127
125
122
120
118
116
114
113
111
110
110
109
109
109
109
110
111
112
113
115
117
119
121
123
125
127
129
133
135
138
140
144
146
148
151
153
155
157
158
160
161
162
162
163
162
162
162
161
159
158
156
155
153
151
148
145
143
140
138
135
133
130
127
125
123
121
119
116
114
113
111
111
109
109
109
109
109
109
111
111
113
114
116
118
120
123
125
127
129
132
134
138
140
142
146
145
155
153
149
158
162
157
157
163
164
161
157
166
164
156
162
161
155
155
154
152
149
144
142
142
139
134
133
129
127
126
124
120
118
118
115
112
114
108
109
111
107
109
108
111
110
111
112
114
117
119
119
121
122
128
130
129
133
137
141
142
144
147
151
152
153
155
158
158
161
161
161
162
162
162
162
161
160
159
157
156
154
152
149
147
144
141
139
136
134
130
128
126
124
121
119
118
115
113
112
111
110
109
109
109
108
110
110
111
111
113
116
118
119
121
123
126
128
131
133
136
139
142
144
146
149
151
153
155
158
159
160
161
162
162
163
162
162
161
160
159
158
156
154
152
149
147
145
143
140
136
134
131
129
127
125
122
120
118
116
114
113
111
110
110
109
109
109
109
109
111
112
113
115
116
119
121
124
125
127
129
133
135
138
141
144
146
148
151
153
156
157
158
159
161
162
162
163
162
162
161
161
159
158
156
154
153
150
148
145
143
140
138
134
132
129
127
125
122
120
118
117
114
112
111
110
110
109
109
109
109
109
111
111
113
114
116
118
120
123
125
127
129
132
135
138
140
143
146
148
151
152
155
156
158
159
161
162
162
163
162
162
162
161
159
158
156
155
153
150
149
146
144
140
138
135
133
130
127
126
123
121
118
117
115
113
112
110
110
109
109
109
109
110
110
111
113
114
116
118
120
122
124
127
129
132
134
137
139
142
145
148
150
152
154
156
158
159
161
161
162
162
163
162
161
161
160
159
157
156
153
151
149
147
144
141
139
136
134
131
128
126
124
121
119
117
115
114
111
111
110
110
109
109
109
110
110
111
112
114
116
117
120
122
124
127
128
132
134
137
139
142
144
147
149
152
154
156
157
159
161
161
162
162
162
162
162
161
161
159
157
156
154
153
150
147
144
142
140
137
134
131
128
126
124
121
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
121
124
126
128
130
133
136
139
142
144
147
149
151
153
155
157
159
160
161
162
162
163
162
162
162
161
159
158
157
155
153
150
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
113
111
111
110
109
109
109
110
110
111
111
113
115
116
119
121
123
125
127
130
133
135
138
141
143
146
148
151
152
155
157
158
159
161
161
162
163
162
163
161
161
159
158
157
155
153
151
148
145
143
140
138
135
132
130
127
125
123
121
118
116
114
113
111
111
110
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
132
135
138
140
143
145
147
150
152
155
156
158
159
161
161
162
162
162
162
162
161
160
158
157
155
153
151
149
146
144
141
138
135
133
130
128
126
123
121
119
117
114
114
112
111
109
109
109
109
110
110
110
111
112
114
116
118
120
121
124
127
128
132
134
137
139
142
144
147
151
151
152
157
159
159
162
160
161
163
162
162
163
160
158
159
158
156
154
152
150
146
144
143
140
135
133
131
128
126
124
122
120
117
115
114
111
111
110
109
111
111
107
108
109
109
112
114
116
119
120
120
124
127
127
131
134
135
137
141
145
148
148
151
155
156
157
159
161
160
161
162
162
161
162
161
160
158
158
157
154
153
150
147
145
142
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
111
113
115
117
119
121
123
125
127
130
133
135
138
141
143
146
148
151
153
155
156
158
160
161
162
162
163
162
163
161
161
159
158
156
155
153
150
148
145
143
140
138
135
132
129
127
125
123
120
119
116
114
112
111
110
110
109
109
108
109
109
111
111
112
114
116
118
120
123
125
127
129
132
134
137
140
143
145
148
150
153
155
156
158
159
161
161
163
162
163
162
161
161
159
159
157
155
153
151
148
145
143
141
138
135
133
129
127
126
123
121
119
117
115
113
111
111
110
108
108
110
106
114
111
105
114
118
115
113
123
124
122
128
130
127
137
141
137
142
146
148
151
150
151
158
159
158
160
162
162
163
163
162
161
161
161
159
157
158
151
151
151
145
145
140
140
136
133
129
129
127
124
121
116
118
117
112
111
111
111
110
109
109
110
110
109
111
112
113
116
117
119
122
124
127
128
131
133
137
139
142
144
147
149
152
154
156
157
158
160
161
163
162
163
162
162
161
161
159
157
156
154
152
149
147
144
142
139
137
134
131
129
126
124
122
120
117
116
114
112
111
110
110
109
109
108
109
110
111
112
113
115
117
119
121
123
126
128
130
133
136
138
141
144
147
149
152
153
155
157
158
160
161
162
162
162
162
162
162
161
159
158
157
154
152
150
148
145
143
140
137
134
132
129
127
124
122
120
118
116
114
112
111
110
110
109
109
109
110
110
111
112
113
115
117
118
120
123
125
127
130
132
135
138
141
143
146
148
151
153
155
157
158
159
161
161
162
163
162
162
162
161
159
158
157
155
154
151
148
145
144
141
139
135
132
130
127
126
123
121
118
116
115
114
111
111
110
109
109
108
109
109
111
111
113
114
117
118
120
122
125
127
129
132
134
138
140
143
145
148
149
152
154
156
158
159
161
161
162
162
163
162
162
161
160
159
157
156
153
152
149
147
144
141
139
136
134
131
128
126
124
121
119
117
115
113
111
111
110
110
109
108
109
110
110
111
113
114
116
117
120
122
125
127
128
131
134
137
139
142
144
147
149
152
154
156
158
159
161
161
162
162
163
162
162
161
160
159
157
156
154
152
149
147
144
142
139
137
134
131
128
126
125
122
119
117
115
114
112
111
110
110
109
109
109
110
110
111
112
113
115
117
119
121
124
126
128
131
133
136
138
141
144
146
149
152
154
155
157
158
160
161
162
162
163
162
162
162
161
159
158
156
154
152
149
148
145
143
140
137
134
131
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
120
123
126
127
130
132
135
138
140
143
146
148
151
153
155
156
158
159
162
162
162
162
162
162
162
161
159
158
156
154
153
150
148
145
143
140
138
135
132
130
127
125
123
121
118
117
114
113
111
111
110
109
109
109
109
109
110
111
113
114
116
118
121
122
125
127
129
132
135
138
140
143
145
148
150
152
154
156
158
159
161
162
162
162
162
162
162
161
159
159
157
156
153
151
149
146
144
141
138
135
133
130
127
126
124
121
119
117
115
113
112
111
109
110
109
109
109
109
110
111
112
114
116
117
120
122
125
127
129
132
134
137
139
142
145
147
150
152
154
156
158
159
161
161
162
162
162
162
162
161
160
159
157
156
154
152
149
147
144
142
139
136
133
131
128
126
123
121
119
117
116
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
122
124
127
128
131
133
136
139
142
144
147
149
152
154
153
156
160
162
162
162
162
162
162
161
162
161
158
157
157
154
153
150
148
145
141
139
138
134
130
128
127
124
121
120
118
115
114
112
111
110
110
108
109
111
110
108
110
110
112
116
117
120
123
123
125
129
131
132
136
138
139
142
147
150
152
152
155
158
158
160
162
162
161
162
163
162
161
161
159
157
156
155
153
150
148
145
143
140
138
134
132
129
127
125
122
120
118
116
114
113
111
111
110
109
109
108
109
110
111
111
113
116
117
118
120
123
125
127
130
132
135
138
141
143
146
148
151
153
155
157
158
160
161
162
162
163
163
162
162
161
160
158
157
155
153
151
149
146
144
140
138
135
132
130
127
126
123
121
118
117
114
113
111
111
110
109
109
109
109
109
110
111
113
114
116
118
120
123
125
127
129
132
135
137
140
143
145
148
150
152
155
156
158
159
161
161
162
163
162
162
162
161
160
158
157
155
153
152
148
147
144
138
141
139
129
129
132
127
118
122
122
116
117
113
106
114
114
107
107
110
110
111
109
108
114
116
115
117
120
122
125
127
128
131
134
137
138
143
144
147
147
153
155
155
157
159
161
161
161
162
165
162
163
157
162
161
156
155
153
153
149
147
144
143
140
136
133
131
128
127
124
122
119
118
116
113
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
121
124
127
128
131
134
136
138
141
144
147
148
151
153
155
157
159
160
161
162
162
162
162
162
161
161
159
158
156
154
152
149
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
113
111
110
109
108
109
109
109
110
111
111
113
114
117
119
121
124
125
127
129
133
135
138
141
144
146
148
151
153
155
156
158
159
161
161
162
162
163
162
161
161
159
158
156
155
153
151
148
146
143
140
138
135
132
130
127
125
123
120
119
117
115
113
111
111
110
109
108
108
109
110
110
111
113
114
116
118
121
123
125
127
129
132
135
138
140
143
145
148
150
153
155
156
158
159
161
161
162
162
163
162
162
161
160
159
157
155
153
151
149
146
144
141
138
135
133
130
127
126
123
121
120
117
115
113
112
111
110
109
109
109
109
110
110
111
112
114
116
117
120
122
125
127
129
131
134
137
140
143
145
148
149
152
154
156
158
159
161
161
162
162
162
162
162
161
161
158
157
156
154
152
149
146
144
141
139
136
134
131
128
126
124
121
119
117
115
114
112
111
110
110
108
109
109
110
110
111
112
114
115
117
119
121
124
126
128
131
134
136
139
142
144
148
149
152
153
156
157
159
161
161
162
162
162
162
162
161
160
158
158
156
154
152
150
148
145
143
139
137
134
132
129
127
124
122
119
117
116
114
113
111
110
109
109
109
109
109
109
111
112
113
115
116
119
121
123
126
127
130
133
135
139
141
144
146
149
151
153
155
157
159
159
161
161
163
162
162
162
162
160
159
158
156
155
153
150
148
146
143
140
138
135
132
129
127
125
123
120
119
116
114
113
111
111
109
109
109
109
109
110
111
111
113
114
116
118
120
122
125
127
129
132
135
138
140
143
146
148
150
153
155
156
158
160
161
161
162
162
163
162
162
161
159
158
157
155
153
151
148
146
144
141
138
135
133
130
127
126
123
121
119
116
115
113
111
111
110
109
109
109
109
109
110
111
113
114
116
118
120
122
125
127
130
131
134
137
139
143
145
148
150
152
155
156
158
159
161
161
162
162
163
162
162
161
160
159
157
156
153
152
149
146
144
142
139
136
133
131
128
126
124
122
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
120
122
124
126
128
131
134
136
139
142
144
147
149
152
154
156
157
159
160
161
162
162
162
162
162
161
161
159
157
156
154
152
149
147
144
142
139
137
134
131
128
127
124
121
120
118
116
113
112
111
110
109
109
109
109
109
110
111
111
114
116
117
119
121
123
126
128
130
133
136
139
141
144
146
149
151
153
157
156
156
161
163
163
164
162
162
162
160
161
160
158
155
155
153
150
148
146
144
139
136
135
133
128
127
125
122
119
118
117
114
113
111
110
109
109
108
108
111
111
109
109
112
113
117
119
121
125
126
127
131
134
134
138
141
143
144
148
152
154
154
156
160
160
161
163
163
162
162
162
161
160
160
158
156
154
152
152
148
146
143
140
138
135
132
129
127
125
123
120
119
117
115
113
111
111
109
109
109
108
108
110
110
111
113
114
116
118
120
123
126
127
129
132
135
137
140
143
145
148
150
152
154
156
157
160
160
162
162
162
163
162
162
161
160
158
157
155
153
152
149
146
143
141
139
136
133
130
127
126
124
121
119
116
115
113
112
110
110
109
109
109
109
109
110
111
111
114
115
118
120
122
124
127
129
131
134
137
139
142
144
147
150
150
155
155
157
160
164
158
158
166
166
158
161
164
159
162
155
150
160
155
146
146
146
143
140
134
131
133
130
126
124
122
120
118
116
113
112
111
110
109
110
108
110
107
110
113
111
114
114
118
119
120
124
128
128
130
130
138
140
140
144
146
150
151
154
155
158
158
159
161
162
162
163
162
161
162
160
160
158
157
154
152
151
147
145
142
140
137
134
131
129
127
125
122
120
119
116
114
112
112
110
110
109
108
109
109
110
111
111
113
115
116
119
120
123
126
127
130
133
136
138
141
143
146
148
151
153
155
157
158
160
161
162
162
163
162
162
162
161
160
158
157
155
153
150
148
146
143
140
137
135
132
129
127
125
123
120
118
117
115
112
111
110
110
109
109
109
109
110
110
112
113
115
116
118
120
123
125
127
130
132
135
137
140
142
145
147
150
153
154
157
158
159
160
162
162
163
162
162
162
161
160
158
157
155
153
151
149
146
144
141
138
136
132
130
128
126
123
121
118
117
115
113
112
110
110
109
109
109
109
109
110
112
113
115
116
118
120
122
124
127
129
131
134
137
140
143
145
148
150
152
154
156
157
160
160
162
162
162
163
162
162
161
160
159
158
155
154
151
149
146
144
141
139
136
133
131
128
126
124
121
120
118
115
113
112
111
110
109
110
109
109
109
110
111
112
114
115
118
120
122
124
127
128
131
134
136
139
142
145
147
150
152
154
156
157
159
160
162
162
163
162
163
162
161
160
159
157
156
154
152
150
147
144
142
140
137
134
131
128
127
125
122
120
118
115
114
112
111
110
109
109
109
109
109
110
111
112
114
115
118
119
121
123
126
128
130
133
135
138
141
144
146
149
152
153
155
157
159
160
161
162
162
162
163
162
162
161
160
158
156
154
152
150
147
146
143
140
137
134
132
129
127
125
122
120
118
116
114
112
111
111
110
109
109
109
109
110
110
112
113
115
117
119
121
123
126
127
130
132
135
138
141
143
146
148
150
153
155
157
158
160
161
162
162
163
162
162
162
161
160
157
157
155
153
151
147
146
143
141
138
135
132
130
127
125
123
121
118
116
115
113
112
110
110
109
109
109
109
110
110
112
112
114
116
118
120
122
125
127
130
132
134
137
140
143
145
148
150
152
154
156
158
159
161
162
162
163
162
162
162
161
160
158
157
155
153
151
149
147
144
141
138
136
133
131
127
126
124
122
119
117
115
113
112
111
110
110
109
109
109
109
110
111
112
114
115
118
119
122
124
127
129
131
134
137
139
141
145
147
150
152
154
156
157
159
160
161
162
163
162
162
162
161
160
159
158
156
154
152
149
146
144
142
139
137
133
131
128
127
124
122
119
118
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
121
123
127
128
131
133
136
139
142
145
146
149
151
154
156
157
158
160
161
162
162
162
163
162
162
161
159
158
156
155
152
150
147
145
143
140
137
134
131
129
127
124
122
120
118
116
114
112
111
111
110
109
109
109
109
110
111
112
113
115
116
118
121
123
126
127
130
133
135
138
141
144
146
149
151
153
155
158
157
157
161
163
163
164
162
161
162
159
159
159
156
154
153
151
148
145
143
141
137
134
132
130
127
124
123
120
117
115
115
113
112
111
110
109
109
109
108
111
112
110
110
113
115
118
122
123
126
127
128
132
137
137
140
144
144
147
150
154
156
156
157
160
161
161
163
164
162
161
162
160
159
158
158
155
153
151
149
146
144
141
138
135
132
130
127
126
123
120
119
117
115
113
112
110
110
109
109
109
109
109
110
111
113
114
116
118
120
122
124
127
129
131
134
137
140
142
145
148
150
152
154
156
157
159
160
162
162
163
162
162
162
161
160
159
157
155
154
152
150
147
144
142
139
136
133
131
128
126
123
122
119
117
115
113
112
111
110
109
109
109
109
109
110
111
111
114
114
122
118
117
127
129
127
128
135
141
141
133
143
154
150
148
154
157
159
159
158
161
164
162
161
162
162
162
161
158
157
156
154
151
150
148
144
144
137
136
136
130
129
126
126
122
119
118
117
116
109
110
113
108
109
109
109
108
110
111
113
114
115
117
119
121
123
126
127
130
133
136
139
141
144
146
149
151
153
155
157
159
161
162
161
162
162
163
162
162
160
159
158
156
154
153
150
147
145
143
140
137
135
131
129
127
125
122
120
118
116
115
113
111
110
109
109
109
109
109
109
110
111
113
115
116
118
120
123
125
127
129
132
134
137
141
143
146
148
150
153
155
157
158
160
161
162
162
162
162
162
162
161
159
158
157
155
153
151
148
146
144
141
138
135
132
130
127
125
123
121
118
117
114
113
111
111
110
109
109
108
109
110
110
111
113
114
115
118
120
123
125
127
129
132
134
137
140
142
145
148
151
152
155
156
158
159
161
161
162
163
162
162
162
161
160
159
157
155
154
151
149
146
144
141
139
136
133
130
127
126
123
122
119
117
115
114
112
111
110
109
109
108
110
109
110
111
112
114
116
117
119
122
124
127
129
132
134
137
139
142
145
147
150
152
154
156
158
159
161
161
162
162
162
162
162
162
160
159
157
156
154
152
150
147
145
142
140
137
134
131
128
127
124
122
119
118
115
114
111
111
110
109
109
108
109
109
110
111
112
113
115
117
119
121
124
126
128
131
133
136
139
141
144
147
149
151
154
155
158
158
160
161
162
162
163
162
162
162
160
159
157
157
154
153
150
148
145
142
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
110
109
109
109
109
110
111
112
113
115
117
119
120
123
125
127
130
133
135
138
141
143
146
148
151
153
155
157
158
160
161
162
162
163
163
162
162
161
160
158
157
155
153
151
148
145
143
141
137
135
132
130
127
125
122
121
118
116
115
113
112
110
110
109
109
108
109
110
110
111
113
115
116
118
120
123
125
127
129
133
135
137
140
143
146
148
150
152
154
156
158
159
161
161
163
163
163
163
162
161
160
158
157
155
153
150
149
146
144
141
139
136
133
130
127
126
123
121
119
117
114
113
112
111
110
109
109
109
109
109
110
111
112
114
116
118
120
122
124
127
129
132
134
137
140
142
145
147
150
152
154
156
158
159
160
161
162
163
162
162
162
161
160
159
157
156
154
152
149
146
144
141
139
136
133
131
128
126
124
122
119
117
115
114
112
111
110
109
109
109
109
109
110
111
112
114
115
117
119
122
124
126
128
132
134
136
139
141
145
147
149
151
154
155
158
159
160
161
162
163
162
162
162
162
160
159
157
156
154
152
150
147
145
142
140
136
133
131
129
127
125
121
119
118
116
114
112
111
110
110
109
109
109
109
110
110
112
113
115
117
119
121
124
126
127
130
133
136
138
141
143
146
148
151
154
155
157
158
160
161
162
162
163
163
162
162
161
159
158
157
154
153
150
148
145
143
140
137
134
132
130
127
125
123
120
118
116
114
112
111
110
109
109
109
109
109
110
111
111
113
115
116
118
120
123
125
127
130
133
135
137
141
143
146
148
151
153
155
156
159
158
158
162
164
163
163
162
161
161
159
158
157
155
152
151
149
146
143
141
139
134
132
131
127
124
122
121
118
116
115
114
111
110
110
109
109
108
109
108
112
114
111
112
114
117
121
123
125
128
129
131
134
138
139
142
146
146
148
151
156
157
157
158
161
162
162
164
163
162
161
161
159
158
157
156
154
151
149
147
144
142
139
136
133
130
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
113
116
117
119
122
124
127
128
132
134
137
139
142
144
147
149
152
154
155
157
159
160
161
162
162
163
162
162
161
159
159
157
156
154
152
149
147
144
142
139
135
135
130
127
127
127
118
116
122
117
109
111
112
116
107
100
113
114
107
108
111
114
114
114
114
120
122
123
126
128
130
134
136
137
141
144
146
148
152
154
155
159
156
159
163
160
162
162
163
162
160
162
161
157
155
156
153
149
148
146
142
140
137
135
133
129
127
125
122
120
118
116
113
113
112
110
110
109
109
109
109
110
111
111
113
115
117
119
120
123
125
127
129
132
135
138
140
143
145
148
151
153
155
156
158
160
161
161
162
163
162
162
162
161
160
158
157
155
153
151
148
145
143
140
138
135
133
130
127
125
123
121
119
117
114
113
111
111
110
109
109
109
109
109
111
111
113
114
116
118
121
123
125
127
129
132
135
137
139
143
145
148
150
152
155
156
158
159
161
161
162
163
162
162
162
161
159
158
157
155
153
151
149
146
144
141
138
135
134
130
128
126
123
121
118
117
115
114
112
111
109
109
108
109
110
109
110
111
113
114
116
118
120
122
124
127
129
131
134
137
139
142
145
147
150
152
154
156
158
159
161
161
162
163
162
162
162
161
160
159
158
156
153
152
149
147
144
142
139
136
134
131
129
127
124
121
120
118
115
114
111
111
110
110
109
109
108
109
110
111
112
114
115
117
119
121
124
126
128
131
134
136
139
142
144
147
149
152
154
156
157
159
161
161
162
162
163
162
162
161
161
159
158
156
154
152
149
148
144
142
140
137
134
132
129
127
125
122
121
118
116
113
113
111
111
110
109
109
109
109
109
111
112
113
115
117
119
121
124
126
127
130
133
135
139
140
144
146
148
151
153
155
157
159
160
161
162
162
163
163
162
162
161
159
158
156
155
152
150
148
145
143
140
138
135
132
129
127
125
123
120
118
116
114
113
111
111
109
109
109
109
109
110
110
111
113
114
117
118
120
123
125
127
129
133
135
138
140
144
145
148
150
153
155
157
158
159
161
162
162
163
162
162
161
161
160
159
157
155
153
151
148
146
144
141
138
135
133
130
127
125
123
120
119
116
115
113
112
111
110
109
109
109
109
110
110
111
113
114
116
118
120
122
125
127
129
131
134
137
139
143
145
148
150
152
154
156
157
159
160
162
162
163
163
162
162
161
160
159
157
155
154
151
149
146
143
141
138
136
133
130
128
126
124
121
119
117
116
114
112
110
110
109
109
109
109
109
109
111
112
114
115
117
119
122
124
127
128
131
133
136
139
141
144
147
150
152
154
156
157
159
160
161
162
162
163
162
162
161
161
159
158
156
154
152
150
147
145
142
139
137
134
131
128
127
124
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
121
123
126
127
131
132
135
138
141
143
146
149
151
154
155
157
158
159
161
161
162
162
162
162
162
160
160
158
156
155
152
151
148
145
142
140
137
135
132
129
127
125
122
120
118
116
114
112
111
111
110
109
108
108
108
109
111
112
113
114
116
118
120
123
125
127
130
132
135
137
140
143
145
148
150
152
155
156
158
160
160
162
162
162
162
162
162
161
160
158
157
155
153
151
148
146
143
140
138
135
132
129
127
126
124
121
118
115
115
113
112
111
110
109
108
109
109
109
110
111
112
114
116
118
120
122
125
127
129
132
135
137
140
142
145
147
150
152
154
157
158
159
160
161
162
163
163
162
162
161
160
158
157
156
151
150
150
148
145
142
138
135
132
129
128
127
123
121
120
118
115
113
113
111
109
109
110
109
108
109
111
111
111
114
116
117
119
122
124
126
129
131
134
139
141
140
143
146
149
153
155
156
159
159
159
162
163
161
162
163
160
159
160
160
158
154
153
153
150
148
145
143
138
136
133
130
127
126
124
121
119
117
116
114
112
111
110
109
110
109
109
109
109
111
112
114
115
117
120
121
124
126
128
130
133
136
138
141
144
147
149
152
153
156
157
159
160
162
161
163
160
167
162
155
164
162
156
153
155
159
150
138
147
149
139
135
134
133
130
126
122
123
121
117
116
114
112
111
111
108
109
110
109
109
111
110
111
116
113
116
121
120
123
125
129
130
132
136
139
141
142
148
149
149
153
155
157
158
159
162
163
162
162
163
162
161
161
159
158
156
155
153
151
148
146
143
140
138
135
132
130
127
125
123
121
119
116
114
113
112
110
109
109
109
109
109
110
110
111
112
114
117
118
121
123
125
127
130
132
135
137
140
143
146
148
150
152
154
157
158
160
161
161
162
162
163
162
162
161
160
158
157
155
153
151
148
146
143
141
138
136
133
130
128
126
124
121
119
116
115
113
111
111
110
109
108
109
109
109
110
111
113
114
115
118
120
122
125
127
129
131
134
136
140
142
144
148
150
153
154
156
157
159
161
162
162
163
162
162
162
161
160
158
157
155
154
151
149
147
144
142
139
136
134
131
128
126
124
122
119
117
116
113
112
111
111
109
109
109
109
110
110
111
112
114
115
117
119
121
124
126
127
131
133
136
139
142
144
147
149
151
154
155
157
159
160
161
162
163
162
162
162
161
160
159
158
156
154
152
150
147
144
142
140
136
134
131
128
127
124
122
119
118
116
114
113
111
110
109
109
109
109
109
110
111
111
114
115
117
119
121
123
126
127
130
133
136
139
141
144
146
149
151
153
155
157
159
159
161
161
163
162
162
162
162
161
159
158
157
155
153
150
147
145
142
140
137
134
132
129
127
125
123
120
118
116
114
113
111
110
109
109
109
109
109
110
110
111
113
114
117
118
120
122
126
127
130
133
135
138
140
144
146
148
150
153
155
157
158
160
161
162
162
162
163
162
162
161
160
158
156
155
153
151
149
146
143
141
137
136
132
130
127
125
123
121
118
116
115
113
111
110
110
109
109
109
109
110
110
111
113
115
116
118
120
123
125
127
129
132
134
137
140
142
145
147
150
152
154
156
157
160
160
162
162
163
162
163
162
161
160
158
157
155
153
151
149
146
144
141
138
136
133
131
127
126
123
121
119
117
115
113
112
111
110
109
109
109
109
109
110
111
112
114
115
118
119
122
124
127
128
131
134
137
140
142
145
147
149
151
154
156
158
159
160
161
162
162
162
163
162
162
160
159
157
156
154
152
149
147
144
141
139
136
134
131
129
127
124
122
120
118
116
114
112
111
110
109
109
109
109
109
110
111
112
113
115
117
119
122
124
126
127
130
133
136
139
142
144
146
148
151
153
155
157
159
160
161
162
162
163
162
162
161
161
159
158
156
154
152
150
148
145
143
140
137
134
132
129
127
125
122
120
118
116
114
112
111
110
109
109
109
108
109
110
111
111
113
114
116
119
121
123
125
127
129
132
135
138
141
143
146
148
151
153
155
157
158
160
161
161
162
162
162
162
162
161
159
158
156
155
153
150
148
145
143
140
138
135
132
129
127
125
123
121
118
116
115
113
112
110
110
109
109
109
109
110
111
111
113
114
116
118
120
123
125
127
129
132
134
137
140
143
145
148
150
152
155
156
158
159
161
162
162
162
162
162
162
161
160
159
157
155
153
151
149
146
144
141
139
135
133
131
127
126
123
121
119
117
115
114
111
111
109
109
109
109
109
109
110
111
112
114
115
118
119
122
124
127
129
132
134
137
139
142
145
147
150
152
154
156
158
159
161
161
162
162
162
162
162
161
160
159
157
156
154
152
149
147
144
142
140
134
132
132
130
127
124
121
118
117
114
113
112
111
109
110
110
109
109
110
111
110
111
114
116
116
118
122
123
126
128
132
134
136
139
142
144
147
149
150
156
157
156
157
159
160
162
163
163
164
163
160
161
160
156
156
155
151
148
147
146
143
139
136
135
131
128
127
126
121
119
118
115
113
112
111
110
109
109
110
109
109
109
110
112
114
116
115
119
121
120
129
130
126
134
140
138
136
145
148
153
148
145
162
162
155
158
162
163
163
161
160
164
162
160
159
158
157
155
153
149
148
146
